Avatar billede psyclown Nybegynder
03. oktober 2002 - 17:54 Der er 4 kommentarer og
1 løsning

Javascript og ASP problem

Jeg har et lille problem med at få noget javascript og asp til at fungerer sammen. Jeg kan jo lige starte med at skrive koden:

<!--#include file="includes/functions.asp"-->
<!--#include file="includes/top.asp"-->
<%
    If Session("AdminPass") = "OK" Then

    Dim myOptions
    myOptions = ""

    Set conntemp = Server.CreateObject("ADODB.Connection")
    conntemp.Open DSN
    SQLAUTOCOMPLETE = "SELECT * FROM USERS"
    Set rsAutoComplete = conntemp.Execute(SQLAUTOCOMPLETE)

    Do While Not rsAutoComplete.EOF
        myOptions = myOptions & "'" & ProperCase(SpecielTegn(rsAutoComplete("U_NAVN"))) & "',"
        rsAutoComplete.MoveNext
    Loop

    myOptions = Left(myOptions,Len(myOptions)-1)

    rsAutoComplete.Close
    Set rsAutoComplete = Nothing
%>
<script>
    function matchFieldSelect (field) {
        var found = false;
        for (var i = 0; i < myOptions.length; i++)
            if ((found = myOptions[i].toLowerCase().indexOf(field.value.toLowerCase()) == 0))
                break;
        if (field.createTextRange) {
            var cursorKeys ="8;46;37;38;39;40;33;34;35;36;45;"
            if (cursorKeys.indexOf(event.keyCode+";") == -1) {
                var r1 = field.createTextRange()
                var oldValue = r1.text;
                var newValue = found ? myOptions[i] : oldValue;
                if (newValue != field.value) {
                    field.value = newValue
                    var rNew = field.createTextRange()
                    rNew.moveStart('character', oldValue.length)
                    rNew.select()
                }
            }
        }
    }

    // Valgmuligheder
    myOptions = new Array(<%=myOptions%>);
</script>
<%
    If Request.Form("NyMail") <> "" Then
        strError = ""
        Afsender = Trim(Request.Form("Afsender"))
        AfsenderUsrID = Trim(Request.Form("AfsenderUsrID"))
        Modtager = Trim(Request.Form("Modtager"))
        ModtagerUsrID = Trim(Request.Form("ModtagerUsrID"))
        Tidspunkt = Year(Date) &"-"& month(Date) &"-"& Day(Date) &" "& FormatDateTime(Time, 3)
        Emne = Trim(Request.Form("Emne"))
        Besked = Trim(Request.Form("Besked"))

        If Len(Modtager) = 0 Then
          strError = "Du har ikke valgt nogen modtager<br>"
        End If
        If Len(Emne) = 0 Then
          strError = strError & "Du har ikke udfyldt feltet ""Emne""<br>"
        End If
        If Len(Besked) = 0 Then
          strError = strError & "Du har ikke udfyldt feltet ""Besked""<br>"
        End If
        If Len(strError) = 0 Then
            Set conntemp = Server.CreateObject("ADoDB.Connection")
            conntemp.open DSN
            SQLNYBESKED = "INSERT INTO MAILBOX (MAIL_DATO, MAIL_MODTAGER, MAIL_MODTAGER_USRID, " &_
            "MAIL_AFSENDER, MAIL_AFSENDER_USRID, MAIL_EMNE, MAIL_BESKED) " &_
            "VALUES ('"& Tidspunkt &"', '"& Modtager &"', '"& ModtagerUsrID &"', " &_
            "'"& Afsender &"', '"& AfsenderUsrID &"', " &_
            "'"& Server.HTMLEncode(Emne) &"', '"& Server.HTMLEncode(Besked) &"'"
            Set rsNyBesked = conntemp.execute(SQLNYBESKED)
            conntemp.Close
            Response.Redirect "mailbox.asp"
        Else
            strError = "<b>"& strError &"</b>"
        End If
    End If
%>
<td width="2%">&nbsp;</td>
<td valign="top" width="56%">
    <table style="border: 1 solid #000000" style="border-top: 1 solid #446DA4" bgcolor="#003399" align="center" border="0" cellpadding="0" cellspacing="0" width="100%">
        <tr>
            <td>
                <table style="border-top: 1 solid #446DA4" bgcolor="#003399" align="center" border="0" cellpadding="3" cellspacing="0" width="100%">
                    <tr>
                        <td><img src="images/blivmedlem.gif"></td>
                    </tr>
                </table>
            </td>
        </tr>
    </table>
    <%
        Set conntemp = Server.CreateObject("ADODB.Connection")
        conntemp.Open DSN
        SQLGETUSRID = "SELECT UID FROM USERS WHERE U_NAVN = '"& Request.Form("Modtager") &"'"
        Set rsGetUsrID = conntemp.Execute(SQLGETUSRID)

        If Not rsGetUsrID.EOF Then
            UsrID = rsGetUsrID("UID")
        End If
    %>
    <table style="border-left: 1 solid #000000; border-right: 1 solid #000000; border-bottom: 1 solid #000000" bgcolor="#336699" align="center" border="0" cellpadding="1" cellspacing="0" width="100%">
        <tr>
            <td>
                <table border="0" cellpadding="3" cellspacing="0" width="100%">
                    <tr>
                        <td align="center"><%=strError%></td>
                    </tr>   
                    <tr>
                        <form action="nymail.asp" method="POST">
                            <td align="center">
                                <table border="0" cellpadding="1" cellspacing="0">
                                    <input type="hidden" name="Afsender" value="<%=Session("AdminAlias")%>">
                                    <input type="hidden" name="AfsenderUsrID" value="<%=Session("AdminID")%>">
                                    <tr>
                                        <td>*Modtagerens navn</td>
                                    </tr>
                                    <tr>
                                        <td><input type="text" name="Modtager" size="20" onkeyup="matchFieldSelect(this)" value="<%=Modtager%>"></td>
                                    </tr>
                                    <input type="hidden" name="ModtagerUsrID" value="<%=UsrID%>">
                                    <tr>
                                        <td>*Emne</td>
                                    </tr>
                                    <tr>
                                        <td><input type="text" name="Emne" size="35" value="<%=Emne%>"></td>
                                    </tr>
                                    <tr>
                                        <td>*Besked</td>
                                    </tr>
                                    <tr>
                                        <td><textarea class="box" cols="40" rows="10" name="Besked"><%=Besked%></textarea></td>
                                    </tr>
                                    <tr>
                                        <td><input type="image" src="images/sendmail.gif" name="NyMail" onclick="form.submit"></td>
                                    </tr>
                                </table>
                            </td>
                        </form>
                    </tr>
                </table>
            </td>
        </tr>
    </table>
</td>
<%
    Else
        Response.Redirect "index.asp"
    End If
%>
<!--#include file="includes/footer.asp"-->

Javascriptet er et autocomplete script som jeg har jeg fundet i post 58000 her på eksperten, men jeg har ikke så meget forstand på javascript, så jeg har bare sat scriptet ind og håbede på at det virker sammen med noget database.
Når jeg vil submit til database, opdaterer den bare siden, den skriver ikke noget ind og hvis jeg bare trykker på submit, så burde den tjek strError for tomme felter, men det gør den heller ikke.
Håber at der er en der kan hjælpe med mit problem.

På forhånd tak!
Avatar billede spermer Nybegynder
03. oktober 2002 - 19:11 #1
Jeg ved ikke om det løser dit problem, men jeg ville rette følgende:

If Request.Form("NyMail") <> "" Then ->
If Request("do") = "mail" Then

<input type="hidden" name="do" value="mail">

onclick="form.submit -> onclick="java script:this.document.NyMail.submit()"
Avatar billede psyclown Nybegynder
03. oktober 2002 - 20:56 #2
Ja, det virker godt nok fint nu, den submitter fint og du skal selvfølgelig have dine point, men det kan være at du lige kan hjælpe mig med en ting mere:

<%
    Set conntemp = Server.CreateObject("ADODB.Connection")
    conntemp.Open DSN
    SQLGETUSRID = "SELECT UID FROM USERS WHERE U_NAVN = '"& Request.Form("Modtager") &"'"
    Set rsGetUsrID = conntemp.Execute(SQLGETUSRID)

    If Not rsGetUsrID.EOF Then
        UsrID = rsGetUsrID("UID")
    End If
%>
I denne lille kode, prøver jeg at finde brugerens UsrID udfra deres brugernavn, som jeg så skriver ind i et hidden felt:
<input type="hidden" name="ModtagerUsrID" value="<%=UsrID%>">
Har du et forslag til hvad jeg kan gøre ??
Avatar billede psyclown Nybegynder
03. oktober 2002 - 21:02 #3
Jeg har fundet ud af, hvordan jeg skulle gøre, men hvis du lige ville skrive et svar, så du kan få dine point
Avatar billede spermer Nybegynder
04. oktober 2002 - 09:57 #4
Det glæder mig, at du fik løst dine problemer.
Avatar billede psyclown Nybegynder
07. maj 2003 - 20:59 #5
lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester