Auswahlliste vorselektiert mit Daten aus der DB?

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

  • Auswahlliste vorselektiert mit Daten aus der DB?

    Schwere Threadtitel... sorry!

    Ich habe folgenden HTML-code:
    PHP-Code:
    <select name="BILDV" size="1">
       <
    option>Bitte wählen</option>
       <
    option>1,33</option>
       <
    option>1,66</option>
       <
    option>1,78</option>
       <
    option>1,85</option>
       <
    option>2,00</option>
       <
    option>2,35</option>
       <
    option>2,40</option>
    </
    select
    Das Ergebnis dieser Liste wird in eine DB (MySQL) eingetragen.

    Jetzt möchte ich falls ich was falsch ausgewählt habe das ganze nochmal editieren.
    Es soll also beim klick auf einen Editieren-Link eine neue Seite starten wo die DB abgefragt wird und eben das was schon in der DB eingetragen ist VORSELEKTIERT in dieser Auswahlliste erscheint.

    In HTML geht das normalerweise mit <option selected> aber ich weiß nicht wie ich das in PHP umsetzen soll das er mir auch das richtige auswählt.

    Hoffe Ihr versteht was mein Problem ist und könnt mir nen Tipp geben.
    Léon: "Du must noch erwachsen werden"
    Mathilda: "Das bin ich schon längst, ich werde nur noch älter"
    Léon: "Bei mir ist es umgedreht, ich bin schon alt genug aber ich muss erst noch erwachsen werden"

  • #2
    if($xy=="1,33") {echo('selected');}
    if($xy=="1,66") {echo('selected');}
    if($xy=="1,78") {echo('selected');}
    ...

    Kommentar


    • #3
      php setzt ja nur deinen html-code zusammen. so müssen option-felder zeile für zeile folgendes konstrukt durchlaufen:
      Code:
      wenn (WERT == der_zu_selektierende) 
         { gibtaus( "<option selected>WERT</option>") }
      sonst
         { gibtaus( "<option>WERT</option>") }
      oder sowas.

      Kommentar


      • #4
        Olla!

        Das sieht gut aus!!!

        Danke Dir, probiers gleich mal aus.
        Léon: "Du must noch erwachsen werden"
        Mathilda: "Das bin ich schon längst, ich werde nur noch älter"
        Léon: "Bei mir ist es umgedreht, ich bin schon alt genug aber ich muss erst noch erwachsen werden"

        Kommentar


        • #5
          Funktioniert!

          Hier mal mein Code falls es später noch jemand interessiert:

          PHP-Code:
              $sql "SELECT BILDV FROM DVDS WHERE ID = 1";
              
          $ergebnis mysql_query($sql);
              
          $row mysql_fetch_object($ergebnis);
              
          $option "$row->BILDV";
              print 
          "<select name=BILDV size=1>";
              print 
          "<option>Bitte wählen</option>";
              if (
          $option=="1,33") { print "<option selected>1,33</option>"; }
              else { print 
          "<option>1,33</option>"; }
              if (
          $option=="1,66") { print "<option selected>1,66</option>"; }
              else { print 
          "<option>1,66</option>"; }
              if (
          $option=="1,78") { print "<option selected>1,78</option>"; }
              else { print 
          "<option>1,78</option>"; }
              if (
          $option=="1,85") { print "<option selected>1,85</option>"; }
              else { print 
          "<option>1,85</option>"; }
              if (
          $option=="2,00") { print "<option selected>2,00</option>"; }
              else { print 
          "<option>2,00</option>"; }
              if (
          $option=="2,35") { print "<option selected>2,35</option>"; }
              else { print 
          "<option>2,35</option>"; }
              if (
          $option=="2,40") { print "<option selected>2,40</option>"; }
              else { print 
          "<option>2,40</option>"; } 
          Léon: "Du must noch erwachsen werden"
          Mathilda: "Das bin ich schon längst, ich werde nur noch älter"
          Léon: "Bei mir ist es umgedreht, ich bin schon alt genug aber ich muss erst noch erwachsen werden"

          Kommentar


          • #6
            für jeden wert ein eigenes if() ?

            was ist, wenn wieder ein anderes bild-verhältnis vorhanden ist? dann alles wieder von vorne?

            ich habe deinen code mal etwas umgeschrieben. schaue es dir an. vielleicht kannst du daraus erkennen, wie es in zukunft einfacher geht.

            wenn du nun ein neues bild-verhältnis rein bekommst, brauchst du nur noch den neuen wert im array reinschreiben.
            PHP-Code:
            <?php

                $options 
            = array(1.331.661.781.8522.352.4);

                
            $sql 'SELECT BILDV FROM DVDS WHERE ID = 1 LIMIT 1';
                
            $ergebnis mysql_query($sql) or die(mysql_error());
                
            $row mysql_fetch_array($ergebnisMYSQL_FETCH_ASSOC);
                
            $option $row['BILDV'];
                
                echo 
            '<select name="BILDV">';
                echo 
            '<option>Bitte wählen</option>';
                
                foreach (
            $options as $val)
                {
                    
            $sel $option == $val ' selected' '';
                    echo 
            '<option value="'.$val.'"'.$sel.'>'.
                         
            number_format($val2',').'</option>'
                
            }
                
                echo 
            '</select>';
                
            ?>
            der code ist natürlich ungetestet, sollte aber funktionieren.
            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


            Kommentar


            • #7
              jap, mit den ganzen ifs ist es wirklich nicht besonders schön.

              hab deinen code mal ausprobiert:

              Warning: mysql_fetch_array() [function.mysql-fetch-array]: The result type should be either MYSQL_NUM, MYSQL_ASSOC or MYSQL_BOTH. in /opt/lampp/htdocs/list/dvdeditieren.php on line 268

              PHP-Code:
              $row mysql_fetch_array($ergebnisMYSQL_FETCH_ASSOC); 
              hab dann mal MYSQL_ASSOC draus gemacht. das gab dann zumindest keine fehlermeldung mehr.

              funktioniert aber leider trotzdem nicht. die auswahlliste ist leer bis auf das "bitte wählen".

              ich bin aber dahinter gestiegen wie das funktionieren soll nur kenne ich denn teil mit dem "?" und ":" nicht. kann damit irgendwie noch nix anfangen.
              PHP-Code:
              $sel $option == $val ' selected' ''
              was macht man damit?
              Léon: "Du must noch erwachsen werden"
              Mathilda: "Das bin ich schon längst, ich werde nur noch älter"
              Léon: "Bei mir ist es umgedreht, ich bin schon alt genug aber ich muss erst noch erwachsen werden"

              Kommentar


              • #8
                http://de3.php.net/manual/de/language.expressions.php

                $option wird wohl nicht ordentlich gefüllt. aber du kannst ja mal selbst schauen, wie man die query gestalten soll und wie man alle ergebnisse in $option reinbekommt.

                Kommentar


                • #9
                  japp. wie gesagt ... habs einfach mal so hingeschrieben ohne zu testen ...
                  INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                  Kommentar


                  • #10
                    die ausgaben geht jetzt:

                    PHP-Code:
                    echo '<option value="'.$val.'"'.$sel.'>'.number_format($val2',','').'</option>'
                    lag am number_format!


                    jetzt stimmt nur noch was mit dem vergleichen nicht.
                    soll 2,35 auswählen macht aber 2,00.

                    hmm, naja die nacht ist ja noch lang!
                    Léon: "Du must noch erwachsen werden"
                    Mathilda: "Das bin ich schon längst, ich werde nur noch älter"
                    Léon: "Bei mir ist es umgedreht, ich bin schon alt genug aber ich muss erst noch erwachsen werden"

                    Kommentar


                    • #11
                      testausgabe gemacht?

                      hab den code jetzt nicht gelesen, aber könnte mir vorstellen, dass das mit (int) zu tun hat. (geraten) statt 2,35 wird dann einfach nur 2 == 2.00 genommen.

                      Kommentar


                      • #12
                        jetzt gehts!

                        PHP-Code:
                        <?php

                            $options 
                        = array(1.331.661.781.8522.352.4);
                            
                        $sql 'SELECT BILDV FROM DVDS WHERE ID = 113 LIMIT 1';
                            
                        $ergebnis mysql_query($sql) or die(mysql_error());
                            
                        $row mysql_fetch_array($ergebnisMYSQL_ASSOC);
                            
                        $option $row['BILDV'];
                            echo 
                        '<select name="BILDV">';
                            echo 
                        '<option>Bitte wählen</option>';
                            foreach (
                        $options as $val)
                            {
                                
                        $val number_format($val2',','');
                            
                        $sel $option == $val ' selected' '';
                            echo 
                        '<option value="'.$val.'"'.$sel.'>'.$val.'</option>';
                            }
                            echo 
                        '</select>';
                        ?>
                        war die umstellung auf die kommas!

                        puhh, danke mal an alle für die hilfe.

                        @abraxax:
                        sollte kein vorwurf oder irgendwas sein. ausm kopf ohne probieren könnte ich das nie
                        Léon: "Du must noch erwachsen werden"
                        Mathilda: "Das bin ich schon längst, ich werde nur noch älter"
                        Léon: "Bei mir ist es umgedreht, ich bin schon alt genug aber ich muss erst noch erwachsen werden"

                        Kommentar


                        • #13
                          ausm kopf ohne probieren könnte ich das nie
                          Na, immer hin hastes selbst hingebogen. Bringt hier lang nicht jeder!

                          Kommentar


                          • #14
                            genau. dafür auch ein lob von mir. ;-)
                            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                            Kommentar

                            Lädt...
                            X