bettina: Probleme mit onChange

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

  1. 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

    --
    X-Will-Answer-Email: No
    1. 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

      1. 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

        --
        X-Will-Answer-Email: No
        1. 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

          1. 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

            --
            X-Will-Answer-Email: No
          2. 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

            1. 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

            2. 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

              1. 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

                1. 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>

                  1. 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

                    1. 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

                      1. Hallo

                        <option value=""><%=Country%></option>

                        YEs so muss es sein!

                        1. 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

                          1. 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

                            1. 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

                              1. 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

                              2. 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

                    2. 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
                      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

                      1. 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

                        --
                        related links:
                        http://learn.to/quote