2016-04-12 6 views
0

Ich verwende den folgenden Code, um verschiedene select Elemente zu meiner Seite hinzuzufügen. Aber, wie ich dies in einer while-Schleife mache, ist der Wert für alle Elemente ist die gleicheEinrichten verschiedener Optionen und Abrufen ihrer Werte

function options($pos, $count) { 

    for ($i = 0; $i < $count; $i++) { 
     $options = ''; 

     $STH = //code to get data from db 

     $STH->execute(); 

     while($row2 = $STH->fetch()) { 
      $options .="<option>" . $row2['name'] . "</option>"; 
     } 

     $menu= "<select name='filter' id='filter'> 
      " . $options . " 
      </select>"; 

     echo $menu; 
    } 

} 

ich dann müssen Sie den Wert jedes der select Element erhalten, nachdem der Benutzer eine Taste drückt. Aber wie der Name für jedes select Element das gleiche ist, weiß ich nicht, wie man das macht. Gibt es eine Möglichkeit, dieses Problem zu umgehen?

Wenn z. B. die Anzahl 5 ist, werden fünf separate Dropdown-Listen erstellt (auch wenn die Optionen in beiden identisch sind). Der Benutzer wählt dann die für ihn relevanten Optionen aus und drückt die Senden-Schaltfläche. Ich muß dann die Werte erhalten, die er aus den Dropdown-Menüs gewählt hat, aber ich kann nicht herausfinden, wie dies für all Dropdown-Menü als Namen zu tun, ist die gleiche

+0

können Sie erwartet Ausgabeformat zu machen ... – narasimharaosp

+0

Was meinst du mit dem Ausgabeformat? Ich bin im Grunde eine Reihe von ausgewählten Elementen nebeneinander und müssen ihre Werte später auf – Ankush

+0

diese Frage ist eine Art von Ratespiel. –

Antwort

1

Vorausgesetzt, dass Sie viele ausgewählte Tags mit dynamischen Optionen

Lösung haben, ist Ihr Name select-Tag unterschiedlich (dynamisch)

<form method="POST"> 
<?php 
cust_options(5); 
function cust_options($count) { 
    for ($i = 0; $i < $count; $i++) { 
     $options = ''; 
     $j = 1; 
     while($j < 4) { 
      $options .="<option>" . 'option'.$j . "</option>"; 
      $j++; 
     } 
     $ind = $i+1; 
     $temp = 'filter_'.$ind; 
     $menu= "<select name='$temp'> 
      " . $options . " 
      </select>"; 

     echo $menu; 
    } 

} 
?> 
<input type="submit"> 
<?php print_r($_POST); ?> 
</form> 
0

Sie sollten etwas tun:

<select name='filter' id='filter'> 
    <?php 
    while($row2 = $STH->fetch()) { 
      $options .="<option>" . $row2['name'] . "</option>"; 
    } ?> 
</select>"; 
+0

Die Auswahlen werden korrekt eingerichtet. Ich brauche einen Weg, um den Wert von jedem von ihnen zu erhalten. Ich kann das jetzt nicht machen, da sie den gleichen Namen und die gleiche ID haben: – Ankush

+0

@Ankush, tut mir leid, dein Punkt ist nicht klar. Können Sie genauer sein – Nehal

+0

Wenn die Anzahl 5 ist, werden fünf separate Dropdown-Listen erstellt (obwohl die Optionen in jedem von ihnen identisch sind). Der Benutzer wählt dann die für ihn relevanten Optionen aus und drückt die Senden-Schaltfläche. Ich muss dann die Werte, die er gewählt hat, aus den Dropdown-Menüs holen, aber ich kann nicht herausfinden, wie das geht, da der 'Name' für alle Dropdown-Menüs derselbe ist – Ankush