auswahllisten richtig auslesen

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

  • auswahllisten richtig auslesen

    hi leute!

    folgendes problem:

    hab mehrere multiple auswahllisten, die aus einer db generiert werden. sieht ungefähr so aus:
    Code:
     
    <select name="medium_id[9] "  size="8" multiple>
          <option value=""></option>
          <option value="">CD-R-Kopie</option>
          <option value="">--12 cm-CD-R</option>
          <option value="2" selected>--->bis 21 Min/ 180 MB</option>
          <option value="3" selected>--->bis 80 Min/ 700 MB</option>
          <option value="4" >--->Aufpreis für Diamond-CD-R (silberne Unterseite)</option>
          <option value="67" >--->Aufpreis für matt-silberne Oberseite (silberne Unterseite)</option>
          <option value="">--Sonderformate</option>
          <option value="5" >--->8 cm-CD-R, bis 21 Min./ 180 MB</option>
          <option value="6" >--->Visitenkarten-CD-R (gerundete Seiten), bis 50 MB</option>
          <option value="7" >--->rechteckige Visitenkarten-CD-R, bis 30 MB</option>
    </select>
    <select name="medium_id[12] "  size="8" multiple>
          <option value=""></option>
          <option value="">CD-R-Kopie</option>
          <option value="">--12 cm-CD-R</option>
          <option value="2" selected>--->bis 21 Min/ 180 MB</option>
          <option value="3" selected>--->bis 80 Min/ 700 MB</option>
          <option value="4" >--->Aufpreis für Diamond-CD-R (silberne Unterseite)</option>
          <option value="67" >--->Aufpreis für matt-silberne Oberseite (silberne Unterseite)</option>
          <option value="">--Sonderformate</option>
          <option value="5" >--->8 cm-CD-R, bis 21 Min./ 180 MB</option>
          <option value="6" >--->Visitenkarten-CD-R (gerundete Seiten), bis 50 MB</option>
          <option value="7" >--->rechteckige Visitenkarten-CD-R, bis 30 MB</option>
    </select>
    <select name="medium_id[10] "  size="8" multiple>
          <option value=""></option>
          <option value="">CD-R-Kopie</option>
          <option value="">--12 cm-CD-R</option>
          <option value="2" selected>--->bis 21 Min/ 180 MB</option>
          <option value="3" selected>--->bis 80 Min/ 700 MB</option>
          <option value="4" >--->Aufpreis für Diamond-CD-R (silberne Unterseite)</option>
          <option value="67" >--->Aufpreis für matt-silberne Oberseite (silberne Unterseite)</option>
          <option value="">--Sonderformate</option>
          <option value="5" >--->8 cm-CD-R, bis 21 Min./ 180 MB</option>
          <option value="6" >--->Visitenkarten-CD-R (gerundete Seiten), bis 50 MB</option>
          <option value="7" >--->rechteckige Visitenkarten-CD-R, bis 30 MB</option>
    </select>
    nach dem man irgendwas selektiert hat, soll das ganze zurück in die db. das versuche ich per while-schleife. das problem ist, das ich nur den letzten selektierten wert der jeweiligen liste bekomme.

    hier meine while-schleife:
    PHP-Code:
    while(list($id$value) = each($medium_id)) {
        echo 
    $id.' : '.$value;
        echo 
    '<br>';

    danke für eure hilfe
    russian

  • #2
    Re: auswahllisten richtig auslesen

    http://www.php-resource.de/forum/sho...threadid=46794
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      hm.. das funzt nur wenn man eine liste hat.. ich habe aber mehere, ca 50

      Kommentar


      • #4
        Original geschrieben von Russian
        das funzt nur wenn man eine liste hat..
        das ist gelogen :-)

        ich habe aber mehere, ca 50
        arrays können durchaus mehr als eine dimension haben.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          kriege immer

          Warning: Variable passed to each() is not an array or object in /home/htdocs/web3/html/pages/admin/kalkulation/affiliation.php on line 21

          Kommentar


          • #6
            gib uns einmal ein bisschen code denn sonst wird dir wohl kaum jemand weiterhelfen können..!

            Kommentar


            • #7
              genau den code versuche ich grad herzustellen. ich versuche das problem genauer zu beschreiben:

              ich habe auf einer seite mehere auswahllisten. bsp -> siehe meinen ersten post. die listen haben alle den gleichen namen mit einer verschiedenen id:

              medium_id[10], medium_id[11] usw. das ganze ist in einem form-tag.
              wenn ich nun den submit-button drücke, brauche ich folgende ausgabe:

              10 : 3,2,4
              11 : 3,5,6

              der teil vor dem doppelpunkt ist die nummer der auswahlliste (medium_id[10])

              der teil nach dem doppelpunkt sind positionen der auswahlliste, die selektiert wurden.

              hab folgendes probiert:

              Code:
               
              $array1 = array();
              	while(list($producttypeid_upd, $value) = each($medium_id)) {
              		array_push($array1, $producttypeid_upd);
              	} 
              	
              	 for ($xyz=0; $xyz<count($array1); $xyz++) {
              		echo $array1[$xyz].":";
              		while(list($producttypeid_upd, $value) = each($array1[$xyz])) {
              			echo $value;
              		}
              	}
              dabei kommt die folgende fehlermeldung:


              9:
              Warning: Variable passed to each() is not an array or object in /home/htdocs/web3/html/pages/admin/kalkulation/affiliation.php on line 21
              10:
              Warning: Variable passed to each() is not an array or object in /home/htdocs/web3/html/pages/admin/kalkulation/affiliation.php on line 21
              14:
              Warning: Variable passed to each() is not an array or object in /home/htdocs/web3/html/pages/admin/kalkulation/affiliation.php on line 21
              15:
              Warning: Variable passed to each() is not an array or object in /home/htdocs/web3/html/pages/admin/kalkulation/affiliation.php on line 21

              Kommentar


              • #8
                Re: Re: auswahllisten richtig auslesen

                print_r($_POST);

                -> anschauen!
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar


                • #9
                  so schlau war ich auch. da kommt folgendes:

                  Array ( [medium_id] => Array ( [9] => 3 [10] => 3 [14] => 7 [15] => 14 [62] => 10 [65] => 63 [11] => 3 [16] => 3 [17] => 3 [12] => 3 [18] => 3 [19] => 5 [20] => 7 [68] => 13 [31] => 64 [32] => 5 [33] => 7 [35] => 64 [36] => 64 [37] => 64 [44] => 64 [34] => 64 [38] => 64 [45] => 64 [46] => 7 [39] => 64 [40] => 64 [41] => 64 [42] => 64 [43] => 64 [22] => 36 [25] => 36 [57] => 36 [58] => 36 [23] => 36 [26] => 36 ) [Submit] => Senden )


                  es ist immer nur der letzte wert der jeweiligen auswahllisre da.

                  Kommentar


                  • #10
                    Original geschrieben von Russian
                    so schlau war ich auch.
                    schön - aber warum stellst du dich dann danach so $gegenteil_von_schlau an?

                    es ist immer nur der letzte wert der jeweiligen auswahllisre da.
                    ach nee, schau an.

                    und eben deshalb wies ich dich ja in der ersten antwort auf die im anderen thread verlinkte php-faq-seite hin, und als du damit noch immer nichts anzufangen wusstest auch noch darauf, dass arrays mehr als eine dimension haben können.

                    jetzt denk aber bitte mal selber ein bisschen darüber nach, wie man das wohl kombinieren könnte ...
                    I don't believe in rebirth. Actually, I never did in my whole lives.

                    Kommentar


                    • #11
                      ich hab mir den post sofort angeschaut... da läufts darauf hinaus, das man hinter dem namen der auswahlliste eckige klammern schreibt. hab ich auch gemacht. nur sind die bei mir nicht leer, sondern es steht immer ein wert drin, damit ich die listen voneinander uterscheiden kann. und eben wenn da ein wert drine steht klappt es nicht.

                      ich hab verschiedenes ausprobiert: wenn nur eine liste da ist (name -> medium_id[]) klappt alles wunderbar. sowohl mit print_r als auch mit einer schleife. wenn es aber mehrere listen sind (name-> medium_id[10], medium_id[11] usw. kriege ich immer nur den letzten wert.

                      das arrays mehrdimensional sind, wusste ich auch scho vorher. nur krieg ich in diesem fall die 2. dimension nicht ausgelesn.

                      das einzige, was mir dazu einfällt ist die auswahllisten anders zu benennen. man könnte ja statt

                      medium_id[10]

                      10[]

                      schreiben. hab ich ausprobiert. dann klappt es auch mit print_r das auszulesen.

                      Array ( [9] => Array ( [0] => 2 [1] => 3 ) [10] => Array ( [0] => 2 [1] => 3 ) [Submit] => Senden )

                      in diesem fall hängt aber das [Submit] => Senden noch dran. wenn ich dan aus dem array in ne db schreibe, ergibt es einen fehler, da kein feld namens submit in der db gibt.

                      also alles im ganzen finde ich das
                      schön - aber warum stellst du dich dann danach so $gegenteil_von_schlau an?
                      etwas voreilig.

                      trotzdem danke für deine mühe

                      Kommentar


                      • #12
                        Original geschrieben von Russian
                        ich hab mir den post sofort angeschaut... da läufts darauf hinaus, das man hinter dem namen der auswahlliste eckige klammern schreibt. hab ich auch gemacht.
                        aber nicht auf die "logische" weise, um dieses problem zu lösen.
                        das arrays mehrdimensional sind, wusste ich auch scho vorher. nur krieg ich in diesem fall die 2. dimension nicht ausgelesn.
                        weil du ja auch noch nicht dafür gesorgt hast, dass es eine zweite gibt.

                        du hast: feldname = medium_id[10]
                        du weißt: wenn ich an den feldnamen eines select multiple [] anhänge, bekomme ich die werte dieses selects in einem array geliefert.

                        kombination von beidem:

                        medium_id[10][]

                        et vóila, wir haben ein zweidminesionales array!


                        also alles im ganzen finde ich das "schön - aber warum stellst du dich dann danach so $gegenteil_von_schlau an?" etwas voreilig.
                        sollte ja jetzt klar werden, dass das so voreilig nicht war ...
                        I don't believe in rebirth. Actually, I never did in my whole lives.

                        Kommentar


                        • #13
                          cool.. das funzt

                          vielen dank für deine hilfe

                          aber sag mal: warum hast du mir das net gleich gesagt? damit hättest du mir ne menge zeit und nerven erspart (und sich selber wahrscheinlich auch) .. und dem forum traffic...

                          versteh das mal net falsch.. ich bin auf jeden fall dankbar und so.... aber du hättest mir das ruhig früher sagen können....

                          egal... jetzt funzt es und ich bin glücklich

                          greetz
                          russian

                          Kommentar


                          • #14
                            Original geschrieben von Russian
                            aber sag mal: warum hast du mir das net gleich gesagt? damit hättest du mir ne menge zeit und nerven erspart
                            ja, und denken auch (na gut, das musstest du für diese lösung ja jetzt immer noch nicht).

                            aber du hättest mir das ruhig früher sagen können....
                            nö. und das werde ich auch beim nächsten solchen fall sicher nicht tun.

                            in der hoffnung, dass du auf sowas vielleicht das nächste mal selber kommst, bevor du fragst ...
                            I don't believe in rebirth. Actually, I never did in my whole lives.

                            Kommentar

                            Lädt...
                            X