Avatar billede hwks Nybegynder
07. oktober 2005 - 14:21 Der er 29 kommentarer og
1 løsning

Søgeformular til redigering/sletning

Hej eksperter

Softspot hjalp mig i http://www.eksperten.dk/spm/644086 med at kunne opdatere data i relaterede tabeller.

Men den løsning finder alle poster i databasen og henter dem ind i en formular. Det jeg ønsker er at kunne søge efter en post, få den vist og derefter redigere den.

Søgeformularen search.asp virker fint - bortset fra, at den henter samtlige poster frem. Den er her:

<form action="update_search_results.asp" method="POST">
<p><input type="text" name="keyword" size="40"><br>
<input type="submit" name="Action" value="Søg">
</p></form>

Redigeringsformularen update_search_results.asp viser som sagt alle poster - men den opdaterer fint. Redigeringsformularen er her:

<%
set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("database.mdb")
Conn.Open DSN

if Request.Form("Opdater") <> "" then
    dim strSQL
    dim fld
    dim danUpdated
    danUpdated = ","
   
    for each fld in Request.Form
        ' Kontroller om det er et dansk-ord felt
        if lcase(left(fld,5)) = "dansk" then
            ' udtræk id fra navnet på feltet
            danid = right(fld,len(fld)-6)
            ' Kontroller om ordet er blevet opdateret tidligere i dette postback
            if instr(1,danUpdated, "," & danid & ",") = 0 then
                ' hvis ikke tidligere opdateret, så gemmes id på ordet, så det
                ' ikke bliver opdateret flere gange i dette postback
                danUpdated = danUpdated & danid & ","
                strSQL = "UPDATE tbl_danish SET "
                strSQL = strSQL & " Dansk='" & Replace(Request.Form("Dansk_" & danid), "'", "''") &"' "
                strSQL = strSQL & " ,dk_ordklasse='" & Replace(Request.Form("dk_ordklasse_" & danid), "'", "''") &"' "
                strSQL = strSQL & " ,dk_morfologi='" & Replace(Request.Form("dk_morfologi_" & danid), "'", "''") &"' "
                strSQL = strSQL & " ,dk_synonym='" & Replace(Request.Form("dk_synonym_" & danid), "'", "''") &"' "
                strSQL = strSQL & " ,dk_definition='" & Replace(Request.Form("dk_definition_" & danid), "'", "''") &"' "
                strSQL = strSQL & " ,dk_eksempel='" & Replace(Request.Form("dk_eksempel_" & danid), "'", "''") &"' "
               
                strSQL = strSQL & " WHERE id_dansk ="& danid
                Conn.Execute(strSQL)
            else
                Response.Write("Been there! ("& fld &")<br>")
            end if
        end if

        ' Kontroller om det er et engelsk-ord felt
        if lcase(left(fld,7)) = "engelsk" then
            ' Opdater det engelske ord og de tilhørende informationer
            ' til det engelske ord (klasse og orden)
            engid = right(fld,len(fld)-8)
            strSQL = "UPDATE tbl_english SET "
            strSQL = strSQL & " Engelsk='" & Replace(Request.Form("Engelsk_" & engid), "'", "''") & "'"
            strSQL = strSQL & ",uk_ordklasse='" & Replace(Request.Form("uk_ordklasse_" & engid), "'", "''") &"' "
            strSQL = strSQL & ",uk_morfologi='" & Replace(Request.Form("uk_morfologi_" & engid), "'", "''") &"' "
            strSQL = strSQL & ",uk_synonym='" & Replace(Request.Form("uk_synonym_" & engid), "'", "''") &"' "
            strSQL = strSQL & ",uk_definition='" & Replace(Request.Form("uk_definition_" & engid), "'", "''") &"' "
            strSQL = strSQL & ",uk_eksempel='" & Replace(Request.Form("uk_eksempel_" & engid), "'", "''") &"' "
            strSQL = strSQL & ",Latin='" & Replace(Request.Form("Latin_" & engid), "'", "''") &"' "
            strSQL = strSQL & ",Tysk='" & Replace(Request.Form("Tysk_" & engid), "'", "''") &"' "
            strSQL = strSQL & ",Svensk='" & Replace(Request.Form("Svensk_" & engid), "'", "''") &"' "
            strSQL = strSQL & ",Klasse='" & Replace(Request.Form("Klasse_" & engid), "'", "''") & "'"
            strSQL = strSQL & ",Orden='" & Replace(Request.Form("Orden_" & engid), "'", "''") & "'"
           
            strSQL = strSQL & " WHERE id_english ="& engid
            Conn.Execute(strSQL)
        end if
    next
end if
%>

<script type="text/javascript">
    function syncWords(obj) {
        // Opdater alle de andre kontroller med samme navn når en
        // kontrols indhold ændrer sig. Dette er nødvendigt da
        // ordet refererer til den samme række i tabellen i databasen.
        var wordValue = obj.value;
        var wordInputs = document.getElementsByName(obj.name);
        if(wordInputs.length > 1) {
            for(var i = 0; i < wordInputs.length; i++) {
                wordInputs[i].value = wordValue;
            }
        }
    }
</script>

<%

'SQL- sætning henter data
strSQL = "SELECT tbl_danish.id_dansk, tbl_danish.Dansk, tbl_danish.dk_ordklasse, tbl_danish.dk_morfologi, tbl_danish.dk_synonym, tbl_danish.dk_definition, tbl_danish.dk_eksempel, tbl_english.id_english, tbl_english.Engelsk, tbl_english.uk_ordklasse, tbl_english.uk_morfologi, tbl_english.uk_synonym, tbl_english.uk_definition, tbl_english.uk_eksempel, tbl_english.Latin, tbl_english.Tysk, tbl_english.Svensk, tbl_english.Klasse, tbl_english.Orden "
strSQL = strSQL & "FROM tbl_danish INNER JOIN tbl_english ON tbl_danish.id_dansk = tbl_english.fr_dansk "
strSQL = strSQL & "ORDER BY LCase(tbl_danish.Dansk) "

Set rs = Conn.Execute(strSQL)
%>
<form action="<%=Request.ServerVariables("SCRIPT_NAME")%>" method="post">
<%
Do While Not rs.EOF
%>
                              <p>Dansk:<br>
                                <input type="text" value="<%=rs("Dansk")%>" name="Dansk_<%=rs("id_dansk")%>" onchange="syncWords(this)" size="60">
                              </p>
                              <p>Dansk ordklasse:<br>
                                <input type="text" value="<%=rs("dk_ordklasse")%>" name="dk_ordklasse_<%=rs("id_dansk")%>" onchange="syncWords(this)" size="60">
                              </p>
                              <p>Dansk morfologi:<br>
                                <input type="text" value="<%=rs("dk_morfologi")%>" name="dk_morfologi_<%=rs("id_dansk")%>" onchange="syncWords(this)" size="60">
                              </p>
                              <p>Dansk synonym:<br>
                                <input type="text" value="<%=rs("dk_synonym")%>" name="dk_synonym_<%=rs("id_dansk")%>" onchange="syncWords(this)" size="60">
                              </p>
                              <p>Dansk definition:<br>
                                <input type="text" value="<%=rs("dk_definition")%>" name="dk_definition_<%=rs("id_dansk")%>" onchange="syncWords(this)" size="60">
                              </p>
                              <p>Dansk eksempel:<br>
                                <input type="text" value="<%=rs("dk_eksempel")%>" name="dk_eksempel_<%=rs("id_dansk")%>" onchange="syncWords(this)" size="60">
                              </p>
                              <p> Engelsk:<br>
                                <input type="text" value="<%=rs("Engelsk")%>" name="Engelsk_<%=rs("id_english")%>" size="60">
                              </p>
                              <p>Engelsk ordklasse:<br>
                                <input type="text" value="<%=rs("uk_ordklasse")%>" name="uk_ordklasse_<%=rs("id_english")%>" onchange="syncWords(this)" size="60">
                              </p>
                              <p>Engelsk morfologi:<br>
                                <input type="text" value="<%=rs("uk_morfologi")%>" name="uk_morfologi_<%=rs("id_english")%>" onchange="syncWords(this)" size="60">
                              </p>
                              <p>Engelsk synonym:<br>
                                <input type="text" value="<%=rs("uk_synonym")%>" name="uk_synonym_<%=rs("id_english")%>" onchange="syncWords(this)" size="60">
                              </p>
                              <p>Engelsk definition:<br>
                                <input type="text" value="<%=rs("uk_definition")%>" name="uk_definition_<%=rs("id_english")%>" onchange="syncWords(this)" size="60">
                              </p>
                              <p>Engelsk eksempel:<br>
                                <input type="text" value="<%=rs("uk_eksempel")%>" name="uk_eksempel_<%=rs("id_english")%>" onchange="syncWords(this)" size="60">
                              </p>
                              <p>Latin:<br>
                                <input type="text" value="<%=rs("Latin")%>" name="Latin_<%=rs("id_english")%>" size="60">
                              </p>
                              <p> Tysk:<br>
                                <input type="text" value="<%=rs("Tysk")%>" name="Tysk_<%=rs("id_english")%>" size="60">
                              </p>                             
                              <p>Svensk:<br>
                                <input type="text" value="<%=rs("Svensk")%>" name="Svensk_<%=rs("id_english")%>" size="60">
                              </p>                             
                              <p>Klasse:<br>
                                <input type="text" value="<%=rs("Klasse")%>" name="Klasse_<%=rs("id_english")%>" size="60">
                              </p>
                              <p>Orden:<br>
                                <input type="text" value="<%=rs("Orden")%>" name="Orden_<%=rs("id_english")%>" size="60">
                              </p>
                              <p>
                                <input type="submit" value="Opdater" name="Opdater">
                              </p>
                             
<%
    rs.MoveNext
Loop
%>

</form>

<%
' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing
%>

Jeg er ASP-rookie og skal nok have det skåret ud i pap :))
Avatar billede softspot Forsker
08. oktober 2005 - 17:53 #1
Jeg kan ikke helt gennemskue om der er nogle specifikke felter du gerne vil søge på, så jeg har bare lagt søgning på alle felter (undtagen id-felter):

searchText = replace(request.form("text"),"'","''")
'SQL- sætning henter data
strSQL = "SELECT tbl_danish.id_dansk" & _
", tbl_danish.Dansk" & _
", tbl_danish.dk_ordklasse" & _
", tbl_danish.dk_morfologi" & _
", tbl_danish.dk_synonym" & _
", tbl_danish.dk_definition" & _
", tbl_danish.dk_eksempel" & _
", tbl_english.id_english" & _
", tbl_english.Engelsk" & _
", tbl_english.uk_ordklasse" & _
", tbl_english.uk_morfologi" & _
", tbl_english.uk_synonym" & _
", tbl_english.uk_definition" & _
", tbl_english.uk_eksempel" & _
", tbl_english.Latin" & _
", tbl_english.Tysk" & _
", tbl_english.Svensk" & _
", tbl_english.Klasse" & _
", tbl_english.Orden " & _
"FROM tbl_danish " & _
"INNER JOIN tbl_english ON tbl_danish.id_dansk = tbl_english.fr_dansk " & _
"WHERE " & _
" tbl_danish.Dansk LIKE '%" & searchText & "'" & _
" OR tbl_danish.dk_ordklasse LIKE '%" & searchText & "'" & _
" OR tbl_danish.dk_morfologi LIKE '%" & searchText & "'" & _
" OR tbl_danish.dk_synonym LIKE '%" & searchText & "'" & _
" OR tbl_danish.dk_definition LIKE '%" & searchText & "'" & _
" OR tbl_danish.dk_eksempel LIKE '%" & searchText & "'" & _
" OR tbl_english.Engelsk LIKE '%" & searchText & "'" & _
" OR tbl_english.uk_ordklasse LIKE '%" & searchText & "'" & _
" OR tbl_english.uk_morfologi LIKE '%" & searchText & "'" & _
" OR tbl_english.uk_synonym LIKE '%" & searchText & "'" & _
" OR tbl_english.uk_definition LIKE '%" & searchText & "'" & _
" OR tbl_english.uk_eksempel LIKE '%" & searchText & "'" & _
" OR tbl_english.Latin LIKE '%" & searchText & "'" & _
" OR tbl_english.Tysk LIKE '%" & searchText & "'" & _
" OR tbl_english.Svensk LIKE '%" & searchText & "'" & _
" OR tbl_english.Klasse LIKE '%" & searchText & "'" & _
" OR tbl_english.Orden LIKE '%" & searchText & "' " & _
"ORDER BY LCase(tbl_danish.Dansk) "
Avatar billede hwks Nybegynder
08. oktober 2005 - 22:43 #2
Hej igen softspot... jeg er virkelig glad for, at du gider hjælpe igen :)))

Det er nok at kunne søge på feltet Dansk og så få vist en eller flere poster til opdatering.
Avatar billede softspot Forsker
09. oktober 2005 - 02:13 #3
Og det er kun selve ordet du vil søge på (hvilket jeg tolker som værende feltet tbl_danish.Dansk). I så fald kan du nok nøjes med denne SQL-sætning:

searchText = replace(request.form("text"),"'","''")
'SQL- sætning henter data
strSQL = "SELECT tbl_danish.id_dansk" & _
", tbl_danish.Dansk" & _
", tbl_danish.dk_ordklasse" & _
", tbl_danish.dk_morfologi" & _
", tbl_danish.dk_synonym" & _
", tbl_danish.dk_definition" & _
", tbl_danish.dk_eksempel" & _
", tbl_english.id_english" & _
", tbl_english.Engelsk" & _
", tbl_english.uk_ordklasse" & _
", tbl_english.uk_morfologi" & _
", tbl_english.uk_synonym" & _
", tbl_english.uk_definition" & _
", tbl_english.uk_eksempel" & _
", tbl_english.Latin" & _
", tbl_english.Tysk" & _
", tbl_english.Svensk" & _
", tbl_english.Klasse" & _
", tbl_english.Orden " & _
"FROM tbl_danish " & _
"INNER JOIN tbl_english ON tbl_danish.id_dansk = tbl_english.fr_dansk " & _
"WHERE " & _
" tbl_danish.Dansk LIKE '%" & searchText & "%'" & _
"ORDER BY LCase(tbl_danish.Dansk) "
Avatar billede hwks Nybegynder
09. oktober 2005 - 10:54 #4
Hej igen softspot....:)))

Det virker ..... du er et jern!!!!

Den finder én eller flere poster frem som ønsket..... og den kan også opdatere den eller de pågældende poster - men når jeg klikker på knappen Opdater opdaterer den som ganske rigtigt posten, men når den har opdateret posten finder og viser den den første post i databasen...

Jeg har fjernet

<%
Do While Not rs.EOF
%>

og

<%
    rs.MoveNext
Loop
%>

ellers viser den alle poster i formularen.

Jeg har forsøgt at indsætte

<%Response.Write "Posten blev opdateret!<br><A class=pathline href=http://www.xxxxxx.dk/search.asp>Vil du opdatere flere poster?</a><br><br><A class=pathline href=http://www.xxxxx.dk/start_search.asp>Vil du søge efter poster?</a><br>" %>

men gør det øjensynligt forkert.

Kan du hjælpe med det også - ellers kast et svar - så skal du fluks få nogle point for din store hjælp?
Avatar billede softspot Forsker
09. oktober 2005 - 16:17 #5
Hmm... hvilke asp-sider har du og hvordan navigerer du mellem dem?

Jeg kan se at du har en side med søgning (search.asp), som sender søgningen til en side med søgeresultatet (update_search_result.asp), men så kan jeg heller ikke se flere sider. Det er interessant hvad du gør efter opdateringen, for det er nok her din udfordring ligger, mht. at få transporteret de korrekte informationer.

Mht. den ændring du har lavet med at fjerne den løkke, så er det nok ikke særlig heldigt, da det så heller ikke vil fungere når du laver en søgning med flere resultater, så den skal du nok have lagt på igen (hvis du ikke allerede har gjort det).
Avatar billede hwks Nybegynder
09. oktober 2005 - 23:11 #6
Jeg har en search_update.asp-side med en søgeformular, som sender søgningen til siden update_search_results.asp. Jeg har ikke flere sider....

Og ja - jeg har allerede sat løkken ind igen - ellers finder den ganske rigtigt ikke flere resultater..... men den viser - efter opdateringen - stadig ALLE poster i databasen.

Nu har jeg stædigt siddet med det hele søndagen....... men jeg fatter det ikke... har du et bud?
Avatar billede softspot Forsker
09. oktober 2005 - 23:28 #7
Ja, det er fordi søgeteksten ikke "overlever" den række af postbacks som bliver udført til serveren. M.a.o. det du indtaster i søgefeltet skal du selv sørge for at sende videre efter første gang søgningen er gennemført, ellers har siden glemt hvad det var du søgte efter... :)
Avatar billede hwks Nybegynder
10. oktober 2005 - 21:38 #8
OK - men hvordan gør jeg det? (tsk tsk tsk .... sådan en Spørge-Jørgen)
Avatar billede softspot Forsker
10. oktober 2005 - 21:46 #9
på den side der hedder update_search_result.asp skal du udskifte den linie kode der ser således ud:

<form action="<%=Request.ServerVariables("SCRIPT_NAME")%>" method="post">

med denne kode:

<%
if request.querystring("search") = "" then
%>
<form action="<%=Request.ServerVariables("SCRIPT_NAME")%>" method="post">
<%
else
%>
<form action="<%=Request.ServerVariables("SCRIPT_NAME")%>?search=<%=Request.QueryString("search")%>" method="post">
<%
end if
%>


Det vil i det mindste bevare søgningen intakt (skulle jeg mene)...
Avatar billede softspot Forsker
10. oktober 2005 - 21:47 #10
Det vil dog ikke ændre på at alle tekster bliver vist, hvis søgningen er tom. Det skal nok håndteres som et supplement til dette...
Avatar billede hwks Nybegynder
10. oktober 2005 - 22:15 #11
det må være blæret at kunne gennemskue den slags..... :)))

Men desværre viser den stadig - efter opdateringen - stadig alle poster i databasen....
Avatar billede softspot Forsker
10. oktober 2005 - 22:23 #12
Ja, det må det være - jeg ved åbenbart ikke hvordan det føles :/

Men bort set fra det, så mangler jeg naturligvis også at fortælle dig at den QueryString-variabel skal trækkes ud i den lokale variabel der hedder searchText (da den jo bliver brugt i SQL-sætningen umiddelbart inden form-elementet).

Hvis din kode stemmer overens med mine forventninger, så burde du have en linie der ser således ud (umiddelbart inden SELECT-sætningen der finde alle poster til formularen):

searchText = replace(request.form("text"),"'","''")

Den skal du ændre til at se således ud:

searchText = replace(request.form("text"),"'","''")
if seachText = "" then
  searchText = replace(request.form("search"),"'","''")
end if
Avatar billede hwks Nybegynder
10. oktober 2005 - 22:38 #13
nope - det var galt - nu virker søgningen ikke længere....
Avatar billede softspot Forsker
10. oktober 2005 - 22:41 #14
Surt!

Prøv at ændre denne linie

if seachText = "" then

til

if searchText = "" then
Avatar billede hwks Nybegynder
10. oktober 2005 - 22:48 #15
hæ hæ - så virker søgningen igen.... en slåfejl... den havde jeg heller ikke set .... - men desværre viser den stadig - efter opdateringen - alle poster i databasen...
Avatar billede softspot Forsker
10. oktober 2005 - 22:51 #16
Hm! Prøv lige at smide koden igen.
Avatar billede hwks Nybegynder
10. oktober 2005 - 22:55 #17
OK - hele molevitten ser således ud:

<%
set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("database.mdb")
Conn.Open DSN

if Request.Form("Opdater") <> "" then
    dim strSQL
    dim fld
    dim danUpdated
    danUpdated = ","
   
    for each fld in Request.Form
        ' Kontroller om det er et dansk-ord felt
        if lcase(left(fld,5)) = "dansk" then
            ' udtræk id fra navnet på feltet
            danid = right(fld,len(fld)-6)
            ' Kontroller om ordet er blevet opdateret tidligere i dette postback
            if instr(1,danUpdated, "," & danid & ",") = 0 then
                ' hvis ikke tidligere opdateret, så gemmes id på ordet, så det
                ' ikke bliver opdateret flere gange i dette postback
                danUpdated = danUpdated & danid & ","
                strSQL = "UPDATE tbl_danish SET "
                strSQL = strSQL & " Dansk='" & Replace(Request.Form("Dansk_" & danid), "'", "''") &"' "
                strSQL = strSQL & " ,dk_ordklasse='" & Replace(Request.Form("dk_ordklasse_" & danid), "'", "''") &"' "
                strSQL = strSQL & " ,dk_morfologi='" & Replace(Request.Form("dk_morfologi_" & danid), "'", "''") &"' "
                strSQL = strSQL & " ,dk_synonym='" & Replace(Request.Form("dk_synonym_" & danid), "'", "''") &"' "
                strSQL = strSQL & " ,dk_definition='" & Replace(Request.Form("dk_definition_" & danid), "'", "''") &"' "
                strSQL = strSQL & " ,dk_eksempel='" & Replace(Request.Form("dk_eksempel_" & danid), "'", "''") &"' "
               
                strSQL = strSQL & " WHERE id_dansk ="& danid
                Conn.Execute(strSQL)
            else
                Response.Write("Desværre - det lykkedes ikke at finde den ønskede post til opdatering. Prøv igen. ("& fld &")<br>")
            end if
        end if

        ' Kontroller om det er et engelsk-ord felt
        if lcase(left(fld,7)) = "engelsk" then
            ' Opdater det engelske ord og de tilhørende informationer
            ' til det engelske ord (klasse og orden)
            engid = right(fld,len(fld)-8)
            strSQL = "UPDATE tbl_english SET "
            strSQL = strSQL & " Engelsk='" & Replace(Request.Form("Engelsk_" & engid), "'", "''") & "'"
            strSQL = strSQL & ",uk_ordklasse='" & Replace(Request.Form("uk_ordklasse_" & engid), "'", "''") &"' "
            strSQL = strSQL & ",uk_morfologi='" & Replace(Request.Form("uk_morfologi_" & engid), "'", "''") &"' "
            strSQL = strSQL & ",uk_synonym='" & Replace(Request.Form("uk_synonym_" & engid), "'", "''") &"' "
            strSQL = strSQL & ",uk_definition='" & Replace(Request.Form("uk_definition_" & engid), "'", "''") &"' "
            strSQL = strSQL & ",uk_eksempel='" & Replace(Request.Form("uk_eksempel_" & engid), "'", "''") &"' "
            strSQL = strSQL & ",Latin='" & Replace(Request.Form("Latin_" & engid), "'", "''") &"' "
            strSQL = strSQL & ",Tysk='" & Replace(Request.Form("Tysk_" & engid), "'", "''") &"' "
            strSQL = strSQL & ",Svensk='" & Replace(Request.Form("Svensk_" & engid), "'", "''") &"' "
            strSQL = strSQL & ",Klasse='" & Replace(Request.Form("Klasse_" & engid), "'", "''") & "'"
            strSQL = strSQL & ",Orden='" & Replace(Request.Form("Orden_" & engid), "'", "''") & "'"
           
            strSQL = strSQL & " WHERE id_english ="& engid
            Conn.Execute(strSQL)
        end if
    next
end if
%>

<script type="text/javascript">
    function syncWords(obj) {
        // Opdater alle de andre kontroller med samme navn når en
        // kontrols indhold ændrer sig. Dette er nødvendigt da
        // ordet refererer til den samme række i tabellen i databasen.
        var wordValue = obj.value;
        var wordInputs = document.getElementsByName(obj.name);
        if(wordInputs.length > 1) {
            for(var i = 0; i < wordInputs.length; i++) {
                wordInputs[i].value = wordValue;
            }

        }
    }
</script>

<%

searchText = replace(request.form("text"),"'","''")
if searchText = "" then
  searchText = replace(request.form("search"),"'","''")
end if

'SQL- sætning henter data
strSQL = "SELECT tbl_danish.id_dansk" & _
", tbl_danish.Dansk" & _
", tbl_danish.dk_ordklasse" & _
", tbl_danish.dk_morfologi" & _
", tbl_danish.dk_synonym" & _
", tbl_danish.dk_definition" & _
", tbl_danish.dk_eksempel" & _
", tbl_english.id_english" & _
", tbl_english.Engelsk" & _
", tbl_english.uk_ordklasse" & _
", tbl_english.uk_morfologi" & _
", tbl_english.uk_synonym" & _
", tbl_english.uk_definition" & _
", tbl_english.uk_eksempel" & _
", tbl_english.Latin" & _
", tbl_english.Tysk" & _
", tbl_english.Svensk" & _
", tbl_english.Klasse" & _
", tbl_english.Orden " & _
"FROM tbl_danish " & _
"INNER JOIN tbl_english ON tbl_danish.id_dansk = tbl_english.fr_dansk " & _
"WHERE " & _
" tbl_danish.Dansk LIKE '%" & searchText & "%'" & _
"ORDER BY LCase(tbl_danish.Dansk) "

Set rs = Conn.Execute(strSQL)
%>

<%
if request.querystring("search") = "" then
%>

<form action="<%=Request.ServerVariables("SCRIPT_NAME")%>" method="post">

<%
else
%>

<form action="<%=Request.ServerVariables("SCRIPT_NAME")%>?search=<%=Request.QueryString("search")%>" method="post">

<%
end if
%>

<%
Do While Not rs.EOF
%>

                              <p>Dansk:<br>
                                <input type="text" value="<%=rs("Dansk")%>" name="Dansk_<%=rs("id_dansk")%>" onchange="syncWords(this)" size="60">
                              </p>
                              <p>Dansk ordklasse:<br>
                                <input type="text" value="<%=rs("dk_ordklasse")%>" name="dk_ordklasse_<%=rs("id_dansk")%>" onchange="syncWords(this)" size="60">
                              </p>
                              <p>Dansk morfologi:<br>
                                <input type="text" value="<%=rs("dk_morfologi")%>" name="dk_morfologi_<%=rs("id_dansk")%>" onchange="syncWords(this)" size="60">
                              </p>
                              <p>Dansk synonym:<br>
                                <input type="text" value="<%=rs("dk_synonym")%>" name="dk_synonym_<%=rs("id_dansk")%>" onchange="syncWords(this)" size="60">
                              </p>
                              <p>Dansk definition:<br>
                                <input type="text" value="<%=rs("dk_definition")%>" name="dk_definition_<%=rs("id_dansk")%>" onchange="syncWords(this)" size="60">
                              </p>
                              <p>Dansk eksempel:<br>
                                <input type="text" value="<%=rs("dk_eksempel")%>" name="dk_eksempel_<%=rs("id_dansk")%>" onchange="syncWords(this)" size="60">
                              </p>
                              <p> Engelsk:<br>
                                <input type="text" value="<%=rs("Engelsk")%>" name="Engelsk_<%=rs("id_english")%>" size="60">
                              </p>
                              <p>Engelsk ordklasse:<br>
                                <input type="text" value="<%=rs("uk_ordklasse")%>" name="uk_ordklasse_<%=rs("id_english")%>" onchange="syncWords(this)" size="60">
                              </p>
                              <p>Engelsk morfologi:<br>
                                <input type="text" value="<%=rs("uk_morfologi")%>" name="uk_morfologi_<%=rs("id_english")%>" onchange="syncWords(this)" size="60">
                              </p>
                              <p>Engelsk synonym:<br>
                                <input type="text" value="<%=rs("uk_synonym")%>" name="uk_synonym_<%=rs("id_english")%>" onchange="syncWords(this)" size="60">
                              </p>
                              <p>Engelsk definition:<br>
                                <input type="text" value="<%=rs("uk_definition")%>" name="uk_definition_<%=rs("id_english")%>" onchange="syncWords(this)" size="60">
                              </p>
                              <p>Engelsk eksempel:<br>
                                <input type="text" value="<%=rs("uk_eksempel")%>" name="uk_eksempel_<%=rs("id_english")%>" onchange="syncWords(this)" size="60">
                              </p>
                              <p>Latin:<br>
                                <input type="text" value="<%=rs("Latin")%>" name="Latin_<%=rs("id_english")%>" size="60">
                              </p>
                              <p> Tysk:<br>
                                <input type="text" value="<%=rs("Tysk")%>" name="Tysk_<%=rs("id_english")%>" size="60">
                              </p>                             
                              <p>Svensk:<br>
                                <input type="text" value="<%=rs("Svensk")%>" name="Svensk_<%=rs("id_english")%>" size="60">
                              </p>                             
                              <p>Klasse:<br>
                                <input type="text" value="<%=rs("Klasse")%>" name="Klasse_<%=rs("id_english")%>" size="60">
                              </p>
                              <p>Orden:<br>
                                <input type="text" value="<%=rs("Orden")%>" name="Orden_<%=rs("id_english")%>" size="60">
                              </p>
                              <p>
                                <input type="submit" value="Opdater" name="Opdater">
                              </p>

<%
    rs.MoveNext
Loop
%>
                             
</form>

<%
' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing
%>
Avatar billede softspot Forsker
10. oktober 2005 - 23:01 #18
Prøv lige at ændre denne passage

<%
if request.querystring("search") = "" then
%>

til

<%
if (request.querystring("search") & "") = "" then
%>


Jeg tror det har noget med forskellen på en tom streng og en udefineret querystring-værdi at gøre.
Avatar billede hwks Nybegynder
10. oktober 2005 - 23:12 #19
nope....  :((( - det ændrede ikke noget - efter opdateringen viser den stadig det hele...
Avatar billede softspot Forsker
10. oktober 2005 - 23:16 #20
Iiiiih altså! :)

Står der noget i adressebaren efter du har opdateret?
Avatar billede hwks Nybegynder
10. oktober 2005 - 23:18 #21
den viser blot filens navn....update_search_results.asp
Avatar billede softspot Forsker
10. oktober 2005 - 23:25 #22
OK, det lader til at den der querystring-parameter ikke kommer med når du opdaterer, hvilket kunne tyde på at jeg ikke har givet dig noget korrekt kode :,(

Prøv lige at udskifte denne passage:

<%
if request.querystring("search") = "" then
%>

<form action="<%=Request.ServerVariables("SCRIPT_NAME")%>" method="post">

<%
else
%>

<form action="<%=Request.ServerVariables("SCRIPT_NAME")%>?search=<%=Request.QueryString("search")%>" method="post">

<%
end if
%>


med denne:

<%
if searchText = "" then
%>

<form action="<%=Request.ServerVariables("SCRIPT_NAME")%>" method="post">

<%
else
%>

<form action="<%=Request.ServerVariables("SCRIPT_NAME")%>?search=<%=replace(searchText,"''","'")%>" method="post">

<%
end if
%>
Avatar billede hwks Nybegynder
10. oktober 2005 - 23:37 #23
det gjorde ikke den store forskel softspot - den viser stadig hele lortet efter opdateringen.....
Avatar billede softspot Forsker
10. oktober 2005 - 23:45 #24
Det er fandeme spøjst!!!?

Jamen, så lad os da prøve en anden tilgangsvinkel...

Lav dette kode:

<%
if request.querystring("search") = "" then
%>

<form action="<%=Request.ServerVariables("SCRIPT_NAME")%>" method="post">

<%
else
%>

<form action="<%=Request.ServerVariables("SCRIPT_NAME")%>?search=<%=Request.QueryString("search")%>" method="post">

<%
end if
%>

om til dette kode:

<form action="<%=Request.ServerVariables("SCRIPT_NAME")%>" method="post">
  <input type="hidden" name="text" value="<=request.form("text")%>">


og dette kode:

searchText = replace(request.form("text"),"'","''")
if searchText = "" then
  searchText = replace(request.form("search"),"'","''")
end if


om til dette (eller tilbage til, om du vil):

searchText = replace(request.form("text"),"'","''")
Avatar billede softspot Forsker
10. oktober 2005 - 23:46 #25
Den forrige løsning fejlede fordi jeg havde kaldt request.form("search") i stedet for request.querystring("search") i denne passage:

searchText = replace(request.form("text"),"'","''")
if searchText = "" then
  searchText = replace(request.form("search"),"'","''")
end if

Det skal altså være

searchText = replace(request.form("text"),"'","''")
if searchText = "" then
  searchText = replace(request.querystring("search"),"'","''")
end if
Avatar billede hwks Nybegynder
11. oktober 2005 - 00:03 #26
Sådan!!

Nu virker det sgu!! Den opdaterer som den skal og viser en tom skærm, når den har opdateret.....

Jeg fjernede lige den lille overskydende "> -

Du er et mandagsjern softspot.....!!!
Avatar billede softspot Forsker
11. oktober 2005 - 00:06 #27
Hvilket overskydende >?

Jeg synes snarere at der er tale om et manglende %

  <input type="hidden" name="text" value="<=request.form("text")%>">

skal være

  <input type="hidden" name="text" value="<%=request.form("text")%>">
Avatar billede softspot Forsker
11. oktober 2005 - 00:07 #28
Mandagsjern... hmmm... lyder suspekt :)

Nå, men hvis det fungerer, så vil jeg ikke tøve med at smide et svar :D
Avatar billede hwks Nybegynder
11. oktober 2005 - 00:12 #29
hæ hæ - for dælen da..... nu viser den den post, der netop er blevet opdateret.... der er ikke et øje tørt..... og JA - det fungerer perfekt..

Jeg takker og bukker endnu en gang .... du er nu kl. 0014 et tirsdagsjern :))
Avatar billede softspot Forsker
11. oktober 2005 - 00:14 #30
*LOL* - jeg er vist snart nød til at tage navneforandring, der er jo ikke den store indikation af hårdhed i mit nuværende navn :D

Tak for point :)
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