Avatar billede kraghjensen Nybegynder
13. juli 2007 - 08:40 Der er 2 kommentarer

værdi fra radioknap til tekst

Jeg har et indtastningsfelt, hvor brugeren indtaster en destination (i index.asp).
Ud fra værdi i feltet vises der nogle forslag til:
Destination - Adresse - Postnr og By.

Hvordan får jeg overført værdien der vises (både navn,adresse, postnr og by) til tekstfelterne på samme side (altså på index.asp).

Siden hvor brugeren indtaster destination og får vist forslagene er her(index.asp):
----
<html>
<head>
<script src="clienthint.js"></script>
</head>
<body>
<table style="width: 54%">
    <tr>
        <td valign="top" style="width: 408px"><form id="form1" runat="server" style="width: 389px">
<table style="width: 40%">
    <tr>
        <td style="width: 119px">Destination:&nbsp; </td>
        <td style="width: 387px">
<input type="text" id="txt1"
onkeyup="showHint(this.value)" name="txt_destination" style="width: 277px"></td>
    </tr>
    <tr>
        <td style="width: 119px">Adresse</td>
        <td style="width: 387px">
    <input type="text" id="txt2" name="txt_adresse"></td>
    </tr>
    <tr>
        <td style="width: 119px">Post nr</td>
        <td style="width: 387px">
        <input type="text" id="txt2" name="txt_postnr"></td>
    </tr>
    <tr>
        <td style="width: 119px">By</td>
        <td style="width: 387px"> <input type="text" id="txt2" name="txt_by"></td>
    </tr>
</table>
</form>
</td>
        <td valign="top">Forslag:<br><span id="txtHint"></span><br>
       
        </td>
    </tr>
</table>
</body>
</html>
----
Koden er viser forslagene (gethints.asp) kommer her:
-----
<%
q=request.querystring("q")

dim con,rs
set con=Server.CreateObject("ADODB.Connection")
con.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath("db.mdb")&";"
set rs=Server.CreateObject("ADODB.Recordset")
rs.open "SELECT tjenesterejser.destination_adresse, tjenesterejser.destination_navn, tjenesterejser.destination_husnr, tjenesterejser.destination_postnr, tjenesterejser.destination_by, tjenesterejser.rejseanulleret, tjenesterejser.id FROM tjenesterejser GROUP BY tjenesterejser.destination_adresse, tjenesterejser.destination_navn, tjenesterejser.destination_husnr, tjenesterejser.destination_postnr, tjenesterejser.destination_by, tjenesterejser.rejseanulleret, tjenesterejser.id HAVING tjenesterejser.destination_navn Like '"&q&"%' AND tjenesterejser.destination_postnr<>'' AND tjenesterejser.rejseanulleret=False",con,1,2%>
<table border="1"  cellpadding="0" style="border-collapse: collapse">
<%
do until rs.eof
%>
<tr>
        <td><input type="radio" value="<%=rs("id")%>" name="R1"></td>
        <td><%=Server.HTMLEncode(rs("destination_navn"))%></td>
    </tr>
    <tr>
        <td>&nbsp;</td>
        <td><%=Server.HTMLEncode(rs("destination_adresse"))%>&nbsp;<%=Server.HTMLEncode(rs("destination_husnr"))%></td>
    </tr>
    <tr>
        <td>&nbsp;</td>
        <td><%=Server.HTMLEncode(rs("destination_postnr"))%>&nbsp;<%=Server.HTMLEncode(rs("destination_by"))%></td>
    </tr>

<%
rs.movenext

loop

set rs=nothing
set con=nothing

        %></table>
-----
Og *.js filen kommer her (clienthint.js)
-----
var xmlHttp

function showHint(str)
{
if (str.length==0)
  {
  document.getElementById("txtHint").innerHTML="";
  return;
  }
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
  {
  alert ("Your browser does not support AJAX!");
  return;
  }
var url="forslag.asp";
url=url+"?q="+str;
url=url+"&sid="+Math.random();
xmlHttp.onreadystatechange=stateChanged;
xmlHttp.open("GET",url,true);
xmlHttp.send(null);
}

function stateChanged()
{
if (xmlHttp.readyState==4)
{
document.getElementById("txtHint").innerHTML=xmlHttp.responseText;
}
}

function GetXmlHttpObject()
{
var xmlHttp=null;
try
  {
  // Firefox, Opera 8.0+, Safari
  xmlHttp=new XMLHttpRequest();
  }
catch (e)
  {
  // Internet Explorer
  try
    {
    xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
    }
  catch (e)
    {
    xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
  }
return xmlHttp;
}
-----
Avatar billede olebole Juniormester
13. juli 2007 - 13:26 #1
<ole>

Til en start, har dit eksempel stort set ikke noget med AJAX at gøre. InnerHTML har f.eks. altid været - og vil altid være - en invalid property ... som ovenikøbet er komplet bandlyst i XHTML!

I AJAX formateres data som XML eller JSON, inden de sendes tilbage til klienten. Her oprettes HTML-elementer med DOM - data fra server-respons'en fyldes i - og de indsættes med DOM i siden.
Desunden bruges _aldrig_ metoden GET til requests ... _altid_ POST. Ellers mister IE hukommelse i processen.
Jeg har dog stor forståelse for, du roder rundt i AJAX-begreberne, da det stort set er umuligt at finde en brugbar artikel/tutorial om emnet på WWW - for ikke at tale om 'færdigbagte' AJAX-kode-libraries.

Prøv at lægge et link til eksemplet. Så er det meget lettere at hjælpe  =)

/mvh
</bole>
Avatar billede kraghjensen Nybegynder
01. september 2007 - 19:38 #2
Her er et link til eksemplet

www.kraghjensen.dk/index.asp

Undskyld forsinkelsen....
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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