2016-07-12 4 views
0

私はデータベースからデータを表示する複数のドロップダウンボックスを作成しようとしています。 複数のドロップダウンを作成することはできますが、最初のドロップダウンにのみデータが表示され、それ以外のデータは表示されません。 私はこれに新しいですし、いくつかのプロの助けを借りたいと思います。ここで コードです:PHPで選択した値に基づいて複数のドロップダウンを作成するにはどうすればよいですか?

<form action="#" method="post"> 
    <select id="aantalMaaltijden" name="aantalMaaltijden"> 
     <option value="1">1</option> 
     <option value="2">2</option> 
     <option value="3">3</option> 
     <option value="4">4</option> 
    </select> 
    <input type="submit" name="submit" value="Bereken" /> 
</form> 

<?php 
$sql = "SELECT * FROM test"; 
$result = $conn->query($sql); 

if(isset($_POST['submit'])){ 
    $selected_val = $_POST['aantalMaaltijden']; // Storing Selected Value In Variable 

    for($i=0; $i<$selected_val; $i++){ 
     echo "<select>"; 

     while($row = $result->fetch_array()) { 
      echo "<option>".$row['name']."</option>";    
     } 

     echo "</select>";     
    } 
} 

?> 

ありがとうございました:)

+0

2番目のドロップダウンは1番目のドロップダウンに依存していますか? –

+0

いいえ、同じデータを表示するだけで同じである必要はありません。 – Enginovic

+0

送信後に2番目のドロップダウンの値を取得することができます –

答えて

0
は、このようにコードを変更し、私は

if (isset($_POST['submit'])) { 

    $options = ""; 
    $selected_val = $_POST['aantalMaaltijden']; // Storing Selected Value In Variable 

    while ($row = $result->fetch_array()) { 

     $options .= "<option>" . $row['name'] . "</option>"; 
    } 

    for ($i = 0; $i < $selected_val; $i++) { 

     echo "<select>"; 
     echo $options; 
     echo "</select>"; 
    } 
} 

をお知らせ

編集

問題が$result->fetch_array()していました。同じリソースに対して$result->fetch_array()を2回呼び出すことはできません。 $result->fetch_array()に渡すリソースの結果は参照によって行われます。 $result->fetch_array()をもう一度使用するには、ポインタの位置をリセットする必要があります。だからこそ、最初のドロップダウンには他のデータではないデータが埋められます。

すべてのドロップダウンに同じオプションが含まれているので、変数$optionsにすべてのオプションを追加し、すべて同じselectに連結しました。

+0

ありがとうございました!私はあなたがしたforループを理解しますが、whileは理解しません。あなたは説明をお願いしますか? – Enginovic

+0

私はクエリについて少し説明を追加しました。 :) –

+0

恐ろしい、ありがとう! – Enginovic

関連する問題