variable aus multiple-select-Anweisung auf nächste Seite übergeben?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • variable aus multiple-select-Anweisung auf nächste Seite übergeben?

    Hallo,

    ich habe folgende select-multiple-Auswahlliste:

    <td><select multiple size="5" name="landkreis_id">
    <option value="21"> item 2.1 </option>
    <option value="22"> item 2.2 </option>
    <option value="23"> item 2.3 </option>
    <option value="24"> item 2.4 </option>
    <option value="25"> item 2.5 </option>
    </select></td>

    Frage: wie kann ich die Variable "landkreis_id" an die Seite "test-wunschregion.php3" weitergeben, der Form?
    <a href=\"test-wunschregion.php3?landkreis_id=$landkreis_id\">landkreis_id weitergeben</a>

    die Variable "landkreis_id" müßte doch ein array sein - oder? aber wenn ich name="landkreis_id [ ]" schreibe in der select-Anweisung dann funktionnierts auch nicht. Weiß jemand weiter?

    Gruß Ralf

  • #2
    du solltest mal das Leerzeichen beim Array weglassen. Und falls auch nicht hilft, lass den Unterstrich weg (aber daran sollte es eigentlich nicht liegen).

    Kommentar


    • #3
      hat leider nicht funktioniert, vielleicht hängt das ganze noch mit den Javafunktionen zusammen, die dahinter stecken. Das gesamte Skript besteht aus 2 multiple-select-Anweisungen, wobei man die Einträge von der einen Liste in die andere bringen kann und umgekehrt (mittels Java-Funktionen). list1 oder list2 müßten doch arrays sein-oder?, dessen Werte ich auf die Seite "test-wunschregion.php3" oder diesselbe Seite bringen möchte.

      <form ACTION="" METHOD="POST">
      <table border="0">
      <tr>
      <td><select multiple size="5" name="list1">
      <option value="11"> item 1.1 </option>
      <option value="12"> item 1.2 </option>
      <option value="13"> item 1.3 </option>
      <option value="14"> item 1.4 </option>
      <option value="15"> item 1.5 </option>
      </select></td>
      <td>
      <input type="button" value=" >> " onclick="move(this.form.list1,this.form.list2)" name="B1"><br>
      <input type="button" value=" << " onclick="move(this.form.list2,this.form.list1)" name="B2">
      </td>

      <td><select multiple size="5" name="list2">
      <option value="21"> item 2.1 </option>
      <option value="22"> item 2.2 </option>
      <option value="23"> item 2.3 </option>
      <option value="24"> item 2.4 </option>
      <option value="25"> item 2.5 </option>
      </select></td>
      </tr>
      </table>
      </form>


      Hier die Java-Funktionen im Head-Bereich:
      <SCRIPT LANGUAGE="JavaScript">

      <!-- This script and many more are available free online at -->
      <!-- The JavaScript Source!! http://javascript.internet.com -->

      <!-- Begin
      sortitems = 1; // Automatically sort items within lists? (1 or 0)

      function move(fbox,tbox) {
      for(var i=0; i<fbox.options.length; i++) {
      if(fbox.options[i].selected && fbox.options[i].value != "") {
      var no = new Option();
      no.value = fbox.options[i].value;
      no.text = fbox.options[i].text;
      tbox.options[tbox.options.length] = no;
      fbox.options[i].value = "";
      fbox.options[i].text = "";
      }
      }
      BumpUp(fbox);
      if (sortitems) SortD(tbox);
      }
      function BumpUp(box) {
      for(var i=0; i<box.options.length; i++) {
      if(box.options[i].value == "") {
      for(var j=i; j<box.options.length-1; j++) {
      box.options[j].value = box.options[j+1].value;
      box.options[j].text = box.options[j+1].text;
      }
      var ln = i;
      break;
      }
      }
      if(ln < box.options.length) {
      box.options.length -= 1;
      BumpUp(box);
      }
      }

      function SortD(box) {
      var temp_opts = new Array();
      var temp = new Object();
      for(var i=0; i<box.options.length; i++) {
      temp_opts[i] = box.options[i];
      }
      for(var x=0; x<temp_opts.length-1; x++) {
      for(var y=(x+1); y<temp_opts.length; y++) {
      if(temp_opts[x].text > temp_opts[y].text) {
      temp = temp_opts[x].text;
      temp_opts[x].text = temp_opts[y].text;
      temp_opts[y].text = temp;
      temp = temp_opts[x].value;
      temp_opts[x].value = temp_opts[y].value;
      temp_opts[y].value = temp;
      }
      }
      }
      for(var i=0; i<box.options.length; i++) {
      box.options[i].value = temp_opts[i].value;
      box.options[i].text = temp_opts[i].text;
      }
      }
      // End -->
      </script>





      Kommentar


      • #4
        also, eigentlich sollte es reichen, wenn du

        <td><select multiple size="5" name="list1[]">

        und

        <td><select multiple size="5" name="list2[]">

        benutzt. Woher weißt du denn, daß die Daten nicht ankommen? Vielleicht greifst du ja auch falsch im PHP darauf zu?

        <? for($i=0;$i<count($list1);$i++) echo "Wert: ".$list1[$i]."<br>"; ?>

        gibt dir mal die erste Box aus, wenn was ausgewählt wurde.

        Kommentar


        • #5
          die Werte werden jetzt übergeben, die, die mit der string-Taste markiert wurden, aber jetzt hab ich das Problem, daß die Javaskripte nicht mehr funktionieren, d.h. die Einträge nicht mehr von der einen Liste in die andere bewegt werden können.

          <form ACTION="test-wunschregion.php3" METHOD="POST">
          ....
          <input type="button" value=" >> " onclick="move(this.form.list1,this.form.list2)" name="B1"><br>
          <input type="button" value=" << " onclick="move(this.form.list2,this.form.list1)" name="B2">
          </td>
          <td><select multiple size="5" name="list2[]">
          <option value="21"> item 2.1 </option>
          <option value="22"> item 2.2 </option>
          <option value="23"> item 2.3 </option>
          <option value="24"> item 2.4 </option>
          <option value="25"> item 2.5 </option>
          </select></td>
          </tr>
          </table>
          <TD COLSPAN="3" ALIGN="center"><INPUT TYPE="image" VALUE="submit" SRC="weiter.gif"></TD>
          </form>

          Kommentar


          • #6
            klar, jetzt heissen deine List auch nicht mehr move(this.form.list1,this.form.list2)
            sondern move(this.form.list1[],this.form.list2[])

            P.S.: Falls JavaScript die Klammern nicht direkt im Namen akzeptiert, kannst du mal versuchen, die Namen so zu übergeben:

            move(this.form.elements[Nummer_des_Feldes1],this.form.elements[Nummer_des_Feldes2])"

            [Editiert von BrainBug am 01-02-2002 um 16:28]

            Kommentar


            • #7
              ja, und ich glaube da liegt das Problem, Java akzeptiert die Klammern nicht, sowohl
              move(this.form.elements[0],this.form.elements[1])
              als auch
              move(this.form.list2[],this.form.list1[] funktionieren nicht

              PS: ich habe nur 2 select-multiple Auswahllisten in der form-Anweisungen, und die Nummern beginnen mit 0

              ich glaube ich mache eine einfache select-multiple-Auswahlliste, ohne Java, das funktioniert

              Kommentar


              • #8
                Nein, du hast doch auch noch zwei Buttons zwischen oder sogar über den Selectboxen -> dann wären wir schon bei der Zählung .elements[2] und .elements[3] -> du mußt wirklich jedes Formelement mitzählen, auch irgendwelche hidden-Felder

                P.S.: laut deinem oberen Code -> [0] und [3] -> 2 * Buttons dazwischen mit [1] und [2] als Element

                Kommentar


                • #9
                  ich verschieb mal das Thema ins Forum "HTML/JavaSCript", da es ja hier rein um JS geht

                  Kommentar


                  • #10
                    toll, jetzt funktioniert das ganze, danke
                    um jetzt das array, z.B. list[2] auf eine andere Seite weiterzugeben, muß man die Einträge markieren, z.B. mit der String-Taste, geht das auch ohne Markierung, denn ich habe ja schon eine Auswahl getroffen indem ich die Einträge von der linken Auswahlliste in die Rechte geklickt habe.

                    Kommentar

                    Lädt...
                    X