[PHP] Mehrere ComboBox Werte in Array

Dieses Thema im Forum "Webentwicklung" wurde erstellt von ibot, 10. Mai 2009 .

Schlagworte:
  1. 10. Mai 2009
    Mehrere ComboBox Werte in Array

    Hallo zusammen.

    Folgendes, ich hab eine ComboBox in der mehrere Werte ausgewählt werden können.
    Diese sollen in ein Array gepackt werden.
    Versucht habe ich es so:

    PHP:
    $gut  = array( $_POST [ 'dvd' ]);      // die Combobox hat den Namen 'dvd'

    echo  $gut ;
    So leicht scheint es jan icht zu sein, zumindest funktioniert es nicht.
     
  2. 10. Mai 2009
    AW: Mehrere ComboBox Werte in Array

    gib die sachen mal mit print_r($gut) aus, dann siehst du auch das ergebnis im Array:

    Code:
    <pre>
    <?php print_r($gut);?>
    </pre>
    
    hier mal ein kleiner test:

    Code:
    <form action="<?php echo $_SERVER['PHP_SELF']?> " method="post" enctype="application/x-www-form-urlencoded"><select name="liste[]" size="5" multiple="multiple" id="liste">
     <option value="1">1</option>
     <option value="2">2</option>
     <option value="3">3</option>
    </select>
    <input type="submit" name="absenden" />
    </form>
    
    <?php
    if (isset($_POST['absenden'])){
     print_r($_POST['liste']);
    }
    ?>
    
    
    
    Wichtig ist auch, das die liste als name hinten ein [] hat.
     
  3. 10. Mai 2009
    AW: Mehrere ComboBox Werte in Array

    Ok, danke
    aber nochmal zu dem [] bei dem Select Name.

    Ich baue mir den Befehl für die ComboBox in PHP auf da ich die ComboBox mit Tabellennamen aus meienr DB fülle.

    Bisher lautet das ganze so:

    PHP:
    print  "<select name=\" $table '[]'\" multiple=\"multiple\" size=\"5\">" ;
    Nur irgendwie is das scheinbar nicht ganz richtig.
    Wie kann ich da die [] hinter den Namen bekommen?
     
  4. 10. Mai 2009
    AW: Mehrere ComboBox Werte in Array

    PHP:
    print  "<select name=\""  $table  "[]\" multiple=\"multiple\" size=\"5\">" ;
    oder

    PHP:
    print  "<select name=\" $table \[]\" multiple=\"multiple\" size=\"5\">" ;
     
  5. 10. Mai 2009
    AW: Mehrere ComboBox Werte in Array

    Am besten du nennst das feld um. Ich würde keine tabellennamen als Formularnamen oder so nehmen. Ist sicherer.
     
  6. 11. Mai 2009
    AW: Mehrere ComboBox Werte in Array

    Werde ich berücksichtigen.

    Ein Problem hab ich allerdings noch bzw. ist eigentl. nur Formsache aber egal:

    Immer wenn ich die Werte aus der ComboBox selektiert habe und dann auf den Button klicke dannzeigt er mir alles sauber an.
    Allerdings sind die Werte in der ComboBox nicht mehr selektiert. Der Nutzer müsste quasi jedesmal neu selektieren.

    Kann man dies beeinflussen?
    Also das auch nach Buttonklick die Werte noch selektiert sind?
     
  7. 11. Mai 2009
    AW: Mehrere ComboBox Werte in Array

    Nehmen wir das Beispiel von newcomer2k6

    PHP:
    <form action="<?php  echo  $_SERVER [ 'PHP_SELF' ] ?> " method="post" enctype="application/x-www-form-urlencoded"><select name="liste[]" size="5" multiple="multiple" id="liste">
    <form action="<?php  echo  $_SERVER [ 'PHP_SELF' ] ?> " method="post" enctype="application/x-www-form-urlencoded"><select name="liste[]" size="5" multiple="multiple" id="liste">
      <option value="1"<?= (( in_array ( "1" $_POST [ 'liste' ]))?( " selected=\"selected\"" ):( "" )); ?>>1</option>
      <option value="2"<?= (( in_array ( "2" $_POST [ 'liste' ]))?( " selected=\"selected\"" ):( "" )); ?>>2</option>
      <option value="3"<?= (( in_array ( "3" $_POST [ 'liste' ]))?( " selected=\"selected\"" ):( "" )); ?>>3</option>
    </select>
    <input type="submit" name="absenden" />
    </form>
    </select>
    <input type="submit" name="absenden" />
    </form>

    <?php
    if (isset( $_POST [ 'absenden' ])){
        
    print_r ( $_POST [ 'liste' ]);
    }
    ?>
    Habe mich hier der Kurzform eines if Befehls bedient. [G]php if short[/G]

    Zum Code: du musst via in_array überprüfen, ob das value der option innerhalb des Arrays vorkommt - wenn ja, wurde es angeklickt und soll dann auch angeklickt angezeigt werde.
     
  8. 11. Mai 2009
    AW: Mehrere ComboBox Werte in Array

    cool danke funktioniert soweit.

    Nur jetzt bräuchte ich das ganze noch mit einem print davor, inetwa so:

    PHP:
    print "<option value="1"<?= (( in_array ( "1" $_POST [ 'liste' ]))?( " selected=\"selected\"" ):( "" )); ?>>1</option>";

    Vor lauter Zeichen blick ich da nicht ganz durch.
    Könntest du das noch schnell syntaktisch korrekt wiedergeben?
     
  9. 11. Mai 2009
    AW: Mehrere ComboBox Werte in Array

    PHP:
    print  "<option value=\"1\"" .(( in_array ( "1" $_POST [ 'liste' ]))?( " selected=\"selected\"" ):( "" )). ">1</option>
     
  10. 11. Mai 2009
    AW: Mehrere ComboBox Werte in Array

    Besten dank,

    So schauts nun für mich passend aus:

    PHP:
    print  "<option value=\" $sname \"" .(( in_array ( $sname $_POST [ $spalten ]))?( " selected=\"selected\"" ):( "" )). "> $sname </option>" ;
    Ich habe allerdings ein Problem. Die Liste mit den Namen "$spalten" befindet sich bei mir in einer anderen php Datei namens "tabellen.php"

    Kann man sich die irgendwie trotzdem zugänglich machen?
    Denn bisher erkennt er $spalten nicht
     
  11. 11. Mai 2009
    AW: Mehrere ComboBox Werte in Array

    Erstelle eine config.php, in der du wichtige Varaiblen definierst, dann kannst du die config.php in tabellen.php und ander php-Dateien includen
     
  12. 11. Mai 2009
    AW: Mehrere ComboBox Werte in Array

    Hat sich erledigt.

    War mein Fehler. Ich habe versucht auf ein anderes Array zuzugreifen, derweil reicht es ja wenn ich alles aus der ComboBox auslese und dies über den Namen der CB abfrage.

    Besten Dank nochmal
    Super Hilfe!
     
  13. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.