Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Variablendeklaration, Existenz der Variablen abfragen

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Variablendeklaration, Existenz der Variablen abfragen

    Guten Tag,

    ich möchte innerhalb eines Formulares über eine Auswahlliste 4 Städte-Namen auswählen können. Diese habe ich als Schlüssel-Werte-Paare in einem Array definiert:

    PHP-Code:
     <?$arrStaedte = array(1 => "Berlin",
                                           2 => "Hamburg",
                                           3 => "München",
                                           4 => "Leipzig"); ?>
    dank error_reporting[E_ALL] im Script, wird mir ausgegeben, dass die Varialblen nicht initialisiert sind. Wie deklariere ich hier die Variablen richtig? Ich komme hier leider nicht weiter. Irgendetwas stimmt mit dem if (isset...) nicht. Die Städtenamen erscheinen nicht in der Auswahlliste.

    Dafür erscheint dort 4x:
    Notice: Undefined index stadt...

    PHP-Code:
    <select name="stadt">
    <?
       foreach ($arrStaedte as $ID => $stadt) {
           print '<option value="'.$ID.'" ';
        
           if (isset($_POST['stadt'])==$ID) print 'selected';    
               print $arrStaedte [$_POST['stadt']]; 
                                                               }
    ?>
    </select>
    Vielen Dank!

  • #2
    isset liefert auch nur true / false, RTFM

    Kommentar


    • #3
      Ist klar du willts eine Variable $_POST['stadt'] mit einer Variablen $ID vergleichen. Aber die Varibake $_POST['stadt'] existiert natürlich da nicht. Auch muss es heisen selected="selected".

      Du müsstest dir da ein zweites Array anlegen.

      PHP-Code:
      $key_arr = array("1","2","3","4"); 
      Und eine zweite foreach mit laufen lassen und dann den Vergleich machen. Kann natürlich eleganter gehen,ich würde das so machen.

      Ist nicht getestet dürfte aber so funktionieren.
      PHP-Code:
      <?php
      //stadtarray
      $stadt_array = array(
           
      '1' => "Berlin",
           
      '2' => "Hamburg",
           
      '3' => "München",
           
      '4' => "Leipzig"
           
      );
      //key array
      $key_arr = array('1','2','3','4');
      echo 
      '<select name="stadtwahl">';
       
      //stadtarray durchlaufen
       
      foreach($stadt_array as $st_key => $st_value)
       {
        
      //key array durchlaufen
        
      foreach($key_arr as $key)
        {
         echo 
      '<option value="'.$st_key.'"';
          if(
      $st_key == $key)
          echo 
      'selected="selected"';
         echo 
      '>';
          echo 
      $st_value;
         echo 
      '</option>';
        } 
       }
      echo 
      '</select>';
      ?>

      Kommentar


      • #4
        @litterauspirna

        Danke für den Tipp. Bei Deiner Variante wird allerdings jede Stadt jetzt 4 x im Auswahlmenü angezeigt. Muß mal weiter knobeln.

        Kommentar


        • #5
          Is ja auch Blödsinn...

          Bevor hier noch mehr davon kommt:

          PHP-Code:
          foreach ($arrStaedte as $ID => $stadt) {
            echo
          '<option value="'.$ID.'" ';
            if(isset(
          $_POST['stadt']) && $_POST['stadt'] == $ID){
              echo 
          'selected="selected"';
            }
            echo 
          ">$stadt</option>";
          } 

          Kommentar


          • #6
            @cycap

            Vielen Dank!!!

            Kommentar

            Lädt...
            X