2016-03-30 7 views
0

Ich erstelle ein Formular in HTML, das die Frage eines Benutzers und das Thema, unter dem die Frage erscheinen soll, an eine PHP-Seite sendet. Die Themennamen werden mithilfe von PHP aus einer MySQL-Datenbank abgerufen.Den Wert eines Dropdown-Menüs über ein HTML-Formular auf eine PHP-Seite schreiben

Ich möchte den Wert des Dropdown-Menüs (das Thema, das der Benutzer gewählt hat) zusammen mit einem HTML-Formular auf einer PHP-Seite veröffentlichen. Hier ist meine Form Code:

<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>

Wenn dies add_question.php gebucht, $ _POST [ 'TOPIC_NAME'] keinen Wert hat. Ich denke, es gibt ein Problem mit meiner Form, obwohl ich nicht sehen kann, was. Jede Hilfe wäre großartig.

Danke!

+0

Sie sagen '$ _POST ['topic_name']' hat keinen Wert, aber Sie verwenden es nirgendwo in Ihrem Code. Warum? – Michael

Antwort

4

Sie haben einen Wert, um Ihre Optionen zuweisen wie:

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

Hinweis:topic_id ein exmaple eines Wertes Sie einen beliebigen anderen Wert

+0

Das macht Sinn, ich weiß nicht, warum ich nicht gesehen habe, dass ich der Option, die gepostet wurde, keinen Wert zugewiesen habe. Ich hatte noch keine Gelegenheit, dies zu versuchen, aber ich bin sicher, es wird funktionieren. Vielen Dank! –

+0

Gern geschehen :) –

0

Sie müssen alle Wertattribut hinzufügen verwenden Ihre Optionen

<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

Versuchen Sie Folgendes:

<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> 

Beachten Sie, dass Sie keinen Wert benötigen, wie oben erwähnt, und Sie werden Ihre Optionen mit Ihrer Datenbank natürlich füllen. Und beachten Sie den Eingangstyp = "submit".

dann auf der Seite add_question.php wie folgt vor:

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

, dass die richtigen Produkte druckt, wenn ich es verwenden.

Verwandte Themen