Динамически заполненный выпадающий список; Ошибка возврата $ _POST

<?php mysql_connect("host", "user", "pw") or die(mysql_error()); mysql_select_db("db") or die(mysql_error()); $sql = "SELECT machine_id FROM machines"; $result = mysql_query($sql); echo "<form action='results_send.php' method='post' >"; echo "<select name='machine_id'>"; while ($row = mysql_fetch_array($result)) { echo "<option value='" . $row['machine_id'] . "'>" . $row['machine_id'] . "</option>"; } echo "</select></form>"; echo '<input type="submit" value="Submit">'; $machine = $_POST['machine_id']; var_dump($machine); ?> 

возвращает:

 <form action='results_send.php' method='post' ><select name='machine_id'><option value='2011 Honda'>2011 Honda</option><option value='1999 Toyota'>1999 Toyota</option><option value='1999 Honda'>1999 Honda</option><option value='1999 Honda'>1999 Honda</option><option value='2013 Toyota'>2013 Toyota</option><option value='2012 Ford'>2012 Ford</option><option value='2012 Ford'>2012 Ford</option><option value='2012 Ford'>2012 Ford</option><option value='2012 Ford'>2012 Ford</option></select></form><input type="submit" value="Submit">NULL 

все это находится в том же документе: results_send.php

Я тестировал php / mysql всего пару дней – терпение ценится.

Я не вижу, как вы хотите, чтобы $ _POST возвращал любую ценность или даже хотел, чтобы мы поняли вашу проблему, пока вы не объясняете, как вы отправляете свою форму.

вы должны использовать одно из двух решений для вашего дела:

  • Использовать AJAX

  • Чтобы использовать две разные формы с кнопками отправки, которые имеют разные имена. Затем используйте isset ($ _ POST ['name_of_button']), чтобы проверить, какая форма отправлена ​​при публикации.

благодаря

У вас есть синтаксическая ошибка, вам не хватает вводной цитаты атрибута value :

Изменить на:

 echo "<option value=\""; 

Или

 echo '<option value="'; 

Вам также не хватает закрывающего </form> . Если вы создаете этот сценарий и вставляете содержимое на страницу, где есть другие формы, то недостающий тег формы может быть проблемой.

Также стоит передавать любые данные через htmlspecialchars() когда вы htmlspecialchars() его в HTML, чтобы предотвратить ошибки XSS и синтаксиса, когда данные могут включать в себя кавычки.