2016-03-30 9 views
0

私はHTMLでフォームを作成して、ユーザーが質問している質問とその質問をPHPページに表示するトピックを作成します。トピック名は、PHPを使用してMySQLデータベースから取得されます。HTMLフォームを介してPHPページにドロップダウンメニューの値を掲示する

ドロップダウンメニュー(ユーザーが選択したトピック)の値をHTMLフォームとともにPHPページに投稿したいとします。これはadd_question.php、$ _POST [ 'TOPIC_NAME']に掲載されて

<form action="add_question.php" method="post"> 
 
    Question:<input name="question_text" type="question"><br> 
 

 
    <select name="topic_name"> 
 
    <option>Topic</option> 
 
     <?php 
 
     // Get each topic name from the database 
 
     include "connect_database.php"; 
 

 
     $topicQuery = "SELECT topic_name FROM topics 
 
         ORDER BY topic_name"; 
 

 
     $result = $conn->query($topicQuery); 
 

 
     if ($result->num_rows > 0) 
 
     { 
 
      while ($row = $result->fetch_assoc()) 
 
      { 
 
      // Make topic an option in drop down box 
 
      echo '<option>' . $row["topic_name"] . '</option>'; 
 
      } 
 
     } 
 

 
     // Close connection 
 
     mysqli_close($conn); 
 
     ?> 
 
    </select><br> 
 

 
    <button type="submit">Submit</button> 
 
</form>

値を持ちません。ここに私のフォームコードです。私は私のフォームに問題があると思うが、私は何が見えないのだろうか。どんな助けも素晴らしいだろう。

ありがとうございます!

+0

'$ _POST ['topic_name']'は値がありませんが、コード内のどこでも実際に使用するわけではありません。どうして? – Michael

答えて

4

あなたが好きなあなたのオプションに値を代入する必要があります。

echo '<option value='.$row["topic_id"].'>' . $row["topic_name"] . '</option>'; 

注:topic_idあなたはあなたがすべてにvalue属性を追加する必要がある他の値

+0

それは理にかなっていますが、私はなぜ私が実際に掲示されているオプションに価値を割り当てていないのか分からなかったのです。まだ試してみる機会はありませんでしたが、うまくいくと思います。ありがとうございました! –

+0

あなたは歓迎です:) –

0

を使用することができます値のexmapleあなたのオプション

<option value="some value">some value</option> 
0
<form action="add_question.php" method="post"> 
    Question:<input name="question_text" type="question"><br> 

    <select name="topic_name"> 
    <option>Topic</option> 
     <?php 
     // Get each topic name from the database 
     include "connect_database.php"; 

     $topicQuery = "SELECT topic_name FROM topics 
         ORDER BY topic_name"; 

     $result = $conn->query($topicQuery); 

     if ($result->num_rows > 0) 
     { 
      while ($row = $result->fetch_assoc()) 
      { ?> 

      <option value="<?=$row["topic_name"]?>"><?=$row["topic_name"]?></option> 

      <?php 
      } 
     } 

     // Close connection 
     mysqli_close($conn); 
     ?> 
    </select><br> 

    <button type="submit">Submit</button> 
</form> 
0

次のことを試してみてください:上記のように、あなたが値を必要としない、あなたはもちろん、あなたのデータベースを使用して、あなたの選択肢を記入しようとしている

<form action="add_question.php" method="POST"> 
    Question: <input name="question_text" type="question"><br/> 
    <select name="topic_name"> 
     <option>Topic 1</option> 
     <option>Topic 2</option> 
     <option>Topic 3</option> 
    </select> 
    <input type="submit" value="submit"> 
</form> 

注意。そして、入力タイプ= "submit"に注目してください。

次に、ページのadd_question.phpに次の操作を行います。私はそれを使用するときに、正しい項目をプリントアウト

echo $_POST["question_text"]; 
echo "<br/>"; 
echo $_POST["topic_name"]; 

関連する問題