Probleme mit onChange
bettina
- html
Hi
Mein Ziel ist ein dropdown, wo alle Länder aufgelistet werden, wenn man dann auf ein Land klickt, soll ein neues Fenster aufgehen, wo dann Infos zu dem jeweiligen Land stehen (die Detailsseite funktioniert schon), wenn beim onchange Befehl vom "?" bis "name" alles weglasse, wird das Scrollfeld richtig angezeigt und man kann sogar auf die Länder klicken, da nichts übergeben wird, werden aber keine Datails angezeigt, wenn ich das aber so wie unten nach dem "?" schreibe, wird das Scrollfeld gar nicht mehr angezeigt und man kann deswegen kein Land auswählen.
Stimmt der Übergabeparameteraufruf nicht? Und warum wird das Feld nicht mehr richtig angezeigt?
Vielen Dank für die Hilfe
Code:
Datenbankaufruf...
Country = Country & "<option value=""" & rs("Country")& """>" & rs("Country") & " (" & rs("OPT") & ")"&"</option>"
...
<select onchange="document.location.href='countryinfo.asp?Country=<%=rs("Country")%>" target="_blank"'" name="Country" style="width:100%; font-size: 10">
<option value="">ALL</option>
<%=Country%>
</select>
Datenbank geschlossen
Hi,
<select onchange="document.location.href='countryinfo.asp?Country=<%=rs("Country")%>" target="_blank"'" name="Country" style="width:100%; font-size: 10">
ad 1) location war noch nie ein Unterobjekt von document. Korrigiere das.
ad 2) Auf Clientseite existiert entweder unter Garantie kein Hauch irgendeinen ASP- o.ä. Codes, oder Du hast noch ganz andere Probleme. Es ergibt nicht den geringsten Sinn, diesen Code bei einem JavaScript-Problem zu betrachten. Sieh Dir den Quellcode der _Ausgabe_ an.
ad 3) font-size erwartet u.a. einen Wert vom Typ length, welcher ohne Einheit nicht auskommt. Vor allem möchtest Du relative Größen verwenden.
ad 4) target ist ein HTML-Attribut, welches nur dort Sinn macht, wo es vorgesehen ist. <select> und JavaScript-Code gehören nicht dazu.
Cheatah
Ich habe jetzt diese Änderungen gemacht:
<select onchange="location.href='countryinfo.asp?Country=<%=rs("Country")%>'" name="Country" style="width:100%">
Aufgerufen sieht der Code so aus
<select onchange="location.href='countryinfo.asp?Country= <font face="Arial" size=2>
<p>ADODB.Field</font> <font face="Arial" size=2>error '80020009'</font>
<p>
sagt mir aber nicht wirklich viel.
Hast Du vielleicht noch einen Tip.
Danke
Bettina
Hi,
<select onchange="document.location.href='countryinfo.asp?Country=<%=rs("Country")%>" target="_blank"'" name="Country" style="width:100%; font-size: 10">
ad 1) location war noch nie ein Unterobjekt von document. Korrigiere das.
ad 2) Auf Clientseite existiert entweder unter Garantie kein Hauch irgendeinen ASP- o.ä. Codes, oder Du hast noch ganz andere Probleme. Es ergibt nicht den geringsten Sinn, diesen Code bei einem JavaScript-Problem zu betrachten. Sieh Dir den Quellcode der _Ausgabe_ an.
ad 3) font-size erwartet u.a. einen Wert vom Typ length, welcher ohne Einheit nicht auskommt. Vor allem möchtest Du relative Größen verwenden.
ad 4) target ist ein HTML-Attribut, welches nur dort Sinn macht, wo es vorgesehen ist. <select> und JavaScript-Code gehören nicht dazu.
Cheatah
Hi,
<select onchange="location.href='countryinfo.asp?Country=<%=rs("Country")%>'" name="Country" style="width:100%">
Aufgerufen sieht der Code so aus
<select onchange="location.href='countryinfo.asp?Country= <font face="Arial" size=2>
<p>ADODB.Field</font> <font face="Arial" size=2>error '80020009'</font>
<p>
Deine serverseitige Programmlogik kann '<%=rs("Country")%>' augenscheinlich nicht richtig auflösen; es gibt dort einen Fehler, welcher durch eine äußerst merkwürdige Ausgabe quittiert wird. Suche diesen Fehler und korrigiere ihn.
Cheatah
Diesmal mit Datenbankaufruf, irgendwie sehe ich nichts falsches, wäre super , wenn dir was auffällt, bin für jeden Tip dankbar, cu
strSQL = "SELECT Country, OPT from Country where Country not like ''"
rs.open strSQL, conn, 3, 2
do until rs.eof
Country = Country & "<option value=""" & rs("Country")& """>" & rs("Country") & " (" & rs("OPT") & ")"&"</option>"
rs.movenext
loop
if request("search") = "" then%>
<form action="file:search.asp" method="get">
<input type="hidden" name="search" value="true">
<table border="0" width="100%" bgcolor="#F8F8F8" cellspacing="1" cellpadding="3" bordercolor="#F8F8F8">
<tr bgcolor="#F8F8F8" bordercolor="#F8F8F8">
<td colspan="4" height="10"> <b>Option Code<br>
<select name="OPT" style="width:100%; font-size: 10">
<option value="">ALL</option>
<%=OPT%>
</select>
</b> </td>
</tr>
<tr bgcolor="#F8F8F8" bordercolor="#F8F8F8">
<td colspan="3"> <b>Country<br>
<select onchange="location.href='countryinfo.asp?Country=<%=rs("Country")%>'" name="Country" style="width:100%; font-size: 10">
<option value="">ALL</option>
<%=Country%>
</select>
</b> </td>
<%rs.close%>
Hi,
<select onchange="location.href='countryinfo.asp?Country=<%=rs("Country")%>'" name="Country" style="width:100%">
Aufgerufen sieht der Code so aus
<select onchange="location.href='countryinfo.asp?Country= <font face="Arial" size=2>
<p>ADODB.Field</font> <font face="Arial" size=2>error '80020009'</font>
<p>Deine serverseitige Programmlogik kann '<%=rs("Country")%>' augenscheinlich nicht richtig auflösen; es gibt dort einen Fehler, welcher durch eine äußerst merkwürdige Ausgabe quittiert wird. Suche diesen Fehler und korrigiere ihn.
Cheatah
Hi,
Diesmal mit Datenbankaufruf, irgendwie sehe ich nichts falsches, wäre super , wenn dir was auffällt,
ich kann kein ASP, sorry. Vielleicht fällt Dir mit passenden Debug-Ausgaben etwas auf.
Cheatah
Hallo
Du muss deine <option> tag dynamisch füllen. So wie Du die Schleife gebaut hast, weiss im select miemand etwas von deimen Recordset!
Gruß Burkhard
Werde ich morgen mal versuchen irgendwo in einem Beitrag stand es müsste ins select, hat mich wohl etwas in die Irre geleitet, war aber auch ohne Datenbankausgabe.
Vielen Dank für den Tip.
Grüße
Bettina
Hallo
Du muss deine <option> tag dynamisch füllen. So wie Du die Schleife gebaut hast, weiss im select miemand etwas von deimen Recordset!Gruß Burkhard
Jetzt hab ich es in meinem Option drin, doch beim ersten rs("Country") hängt er sich auf, weißt Du woran es liegt.
Country = Country & "<option onchange=""" & location.href="countryinfo.asp?Country=rs("Country")" & """ value=""" & rs("Country")& """>" & rs("Country") & " (" & rs("OPT") & ")"& " </option>"
Danke
Bettina
Hallo
Du muss deine <option> tag dynamisch füllen. So wie Du die Schleife gebaut hast, weiss im select miemand etwas von deimen Recordset!Gruß Burkhard
Guten Morgen Bettina
http://www.aspfaq.de/index.asp?RID=2&FID=81&SFI=1&ELE=7055&OPID=0&ORID=2&OSST=&OSFI=1
Dieser Link wird dir helfen! Stefan Falz ist eindeutig der Meister!
Er hat mir auch ganz oft geholfen!
Solltest Du nicht klar kommen, dann sagt bescheid, dann schauen wir noch mal zusammen.
Gruß Burkhard
Hi
Danke, für den Link, vor ein paar Tagen hätte er mir echt weitergeholfen, leider wird da nur das Thema der Ausgabe behandelt, das funktioniert bei mir schon (also ohne Link), leider wird der Link nicht behandelt. Der Fehler wird wahrscheinlich hauptsächlich am option tag liegen, leider sehe ich ihn nicht, könntest Du mir nicht doch noch helfen, dann müsste ich Stefan falz nicht auch noch damit beschäftigen.
Wäre echt super
Grüße
strSQL = "SELECT Country, OPT from Country where Country not like ''"
rs.open strSQL, conn, 3, 2
do until rs.eof
Country = Country & "<option onchange=""" & location.href="countryinfo.asp?Country=rs("Country")" & """ value=""" & rs("Country")& """>" & rs("Country") & " (" & rs("OPT") & ")"& " </option>"
rs.movenext
loop
rs.close
if request("search") = "" then%>
</font>
<form action="search.asp" method="get">
<input type="hidden" name="search" value="true">
<table border="0" width="100%" bgcolor="#F8F8F8" cellspacing="1" cellpadding="3" bordercolor="#F8F8F8">
<tr bgcolor="#F8F8F8" bordercolor="#F8F8F8">
<td colspan="4" height="10"> <b>Option Code<br>
<select name="OPT" style="width:100%; font-size: 10">
<option value="">ALL</option>
<%=OPT%>
</select>
</b> </td>
</tr>
<tr bgcolor="#F8F8F8" bordercolor="#F8F8F8">
<td colspan="3"><font face="Courier New, Courier, mono"></font>
<b>Country<br>
<select name="Country" style="width:100%; font-size: 10">
<option value="">ALL</option>
<%=Country%>
</select>
Hallo Bettina,
strSQL = "SELECT Country, OPT from Country where Country not like ''"
rs.open strSQL, conn, 3, 2
do until rs.eof
Country = Country & "<option onchange=""" & location.href="countryinfo.asp?Country=rs("Country")" & """ value=""" & rs("Country")& """>" & rs("Country") & " (" & rs("OPT") & ")"& " </option>"
rs.movenext
loop
Du weist in einer Schleife der Variablen Country immer wieder neue Werte zu. Nach dem Ende der Schleife zeigt rs hinter den letzten Datensatz und die Variable Country enthält das letzte Land.
Der Teil gehört vor die Schleife:
if request("search") = "" then%>
</font>
<form action="search.asp" method="get">
<input type="hidden" name="search" value="true">
<table border="0" width="100%" bgcolor="#F8F8F8" cellspacing="1" cellpadding="3" bordercolor="#F8F8F8">
[...]
Das gehört in die Schleife:
<select name="Country" style="width:100%; font-size: 10">
<option value="">ALL</option>
<%=Country%>
</select>
[...]
Und nach der Schleife wird die Tabelle zugemacht.
Grüße
Andreas
Hallo Bettina,
Ich sehe gerade noch folgendes. Müsste das hier
<option value="">ALL</option>
<%=Country%>
nicht
<option value=""><%=Country%></option>
heissen?
Grüße
Andreas
Hallo
<option value=""><%=Country%></option>
YEs so muss es sein!
Ich rufe eine Zeile drunter ja die Variable Coutry auf und die hat ebenso das "<option> </option> drin.
Daher sollte das schon richtig sein.
Grüße
Bettina
Hallo Bettina
sach mal das onChange gehört doch in das select TAG oder?
Ich meine option weiß ja nix davon, sondern nur das select!
Liegt da vielleicht der Hund begraben?
Gruß Burkhard
Ich dachte damals deine Antwort
Hallo
Du muss deine <option> tag dynamisch füllen. So wie Du die Schleife gebaut hast, weiss im select miemand etwas von deimen Recordset!Gruß Burkhard
heißt, dass ich es in den Option Tag stellen muss. ich versuche es noch mal.
Grüße
Bettina
Hallo Bettina,
also vom denkansatz zum tun!
<select name="AE" onchange="javascript:DEINEFUNKTION();">
<option>Beschriftung</option>
<%
''''''''''''''''''''Schleife durch die Datensätze
do while not objRS.eof
%>
<option value="<%Response.write objRS("DEINLINK")%>">
<%Response.write " "& objRS("DEINEBESCHRIFTUNG")%>
</option>
<%
''''''''''''' gehe zum nächsten Datensatz und baue das nächste Option auf
objRS.movenext
Loop
%>
</select>
<%
''''''''''''''''''und alles wieder schließen und löschen
objRS.close
Set objRS = nothing
objCon.close
Set objCon = nothing
%>
Also der select mit jsFunktion statisch, das OptionTag mit link und Beschriftung dynamisch
Ich hoffe das hilft Dir so weiter
Gruß Burkhard
Hallo Bettina,
also vom denkansatz zum tun!
<select name="AE" onchange="javascript:DEINEFUNKTION();">
<option>Beschriftung</option>
<%
''''''''''''''''''''Schleife durch die Datensätze
do while not objRS.eof
%>
<option value="<%Response.write objRS("DEINLINK")%>">
<%Response.write " "& objRS("DEINEBESCHRIFTUNG")%>
</option>
<%
''''''''''''' gehe zum nächsten Datensatz und baue das nächste Option auf
objRS.movenext
Loop
%>
</select>
<%
''''''''''''''''''und alles wieder schließen und löschen
objRS.close
Set objRS = nothing
objCon.close
Set objCon = nothing
%>
Also der select mit jsFunktion statisch, das OptionTag mit link und Beschriftung dynamisch
Ich hoffe das hilft Dir so weiter
Gruß Burkhard
So ?
das if vor die SQL Abfrage und das select.. vor das rs.movenext?
Ich hab dass All noch drin, da ich will, dass zuerst All angezeigt wird, die Anzeige würde richtig funktionieren ohne mein onChange geraffel, aber es wäre so schön wenn es auch mit funktionieren würde :-).
Grüße
Bettina
Hallo Bettina,
strSQL = "SELECT Country, OPT from Country where Country not like ''"
rs.open strSQL, conn, 3, 2
do until rs.eof
Country = Country & "<option onchange=""" & location.href="countryinfo.asp?Country=rs("Country")" & """ value=""" & rs("Country")& """>" & rs("Country") & " (" & rs("OPT") & ")"& " </option>"
rs.movenext
loopDu weist in einer Schleife der Variablen Country immer wieder neue Werte zu. Nach dem Ende der Schleife zeigt rs hinter den letzten Datensatz und die Variable Country enthält das letzte Land.
Der Teil gehört vor die Schleife:
if request("search") = "" then%>
</font>
<form action="search.asp" method="get">
<input type="hidden" name="search" value="true">
<table border="0" width="100%" bgcolor="#F8F8F8" cellspacing="1" cellpadding="3" bordercolor="#F8F8F8">
[...]Das gehört in die Schleife:
<select name="Country" style="width:100%; font-size: 10">
<option value="">ALL</option>
<%=Country%>
</select>
[...]Und nach der Schleife wird die Tabelle zugemacht.
Grüße
Andreas
Hallo Bettina,
So ?
das if vor die SQL Abfrage und das select.. vor das rs.movenext?
Ich hab dass All noch drin, da ich will, dass zuerst All angezeigt wird, die Anzeige würde richtig funktionieren ohne mein onChange geraffel, aber es wäre so schön wenn es auch mit funktionieren würde :-).
Also erstmal hat das onChange nichts mit dem eigentlichen Problem zu tun.
Die Reihenfolge der Aktionen sollte ungefähr so sein:
Abfrage, will ich überhaupt was tun (if request("search") = "" then%>)
Wenn ja:
Formular und Tabelle öffnen
Select
Schleife über alle Datensätze
Option schreiben
nächster Datensatz
Schleife fertig
Tabelle und Formular schliessen
ende ja
Grüße
Andreas