动态填充的下拉菜单; $ _POST返回错误

时间:2013-02-11 18:48:34

标签: php mysql

<?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几天 - 耐心受到赞赏。

2 个答案:

答案 0 :(得分:0)

您遇到语法错误,错过了value属性的开头报价:

更改为:

echo "<option value=\"";

或者

echo '<option value="';

您还缺少结束</form>标记。如果您正在使用此脚本并将内容插入到有其他表单的页面中,那么缺少的表单标记可能会成为问题。

当您将数据输出到HTML时,还需要通过htmlspecialchars()传递任何数据,以防止数据可能包含引号的XSS和语法错误。

答案 1 :(得分:0)

我不知道你希望$ _POST如何回复任何价值,甚至不希望我们在你不解释你如何提交表格时理解你的问题。

你必须使用2种解决方案中的一种:

  • 使用AJAX

  • 使用具有不同名称的提交按钮的两种不同表单。然后使用isset($ _ POST ['name_of_button'])来检查发布时提交的表单。

由于