问题描述
|
我将尝试使其简单...这是我用来从数据库填充下拉菜单的代码。这将正确填充下拉菜单。
<form action=\"formsubmit.PHP?team_id=6\" method=\"post\">
<label> <br />What did they say?: <br />
<textarea name=\"quotetext\" rows=\"10\" cols=\"26\"></textarea></label>
<select name=\'name\'>
<?PHP
while ($temp = MysqL_fetch_assoc($query)) {
echo \"<option value=\" . $temp[\'id\'] . \">\".htmlspecialchars($temp[\'lastname\']) . \",\" . htmlspecialchars($temp[\'firstname\']) . \"</option>\";
}
?>
</select>
<input type=\"submit\" value=\"Submit!\" />
</form>
我想做的就是将这个人的ID传递到formsubmit.PHP文件中,该文件在提交表单时被调用。当我在formsubmit.PHP的数据库查询中使用$ die($ sql)时,此人的ID为空。。。这是formsubmit.PHP中的相关代码:
$quotetext = $_POST[\'quotetext\'];
$id = $_POST[\'id\'];
$team_id = $_GET[\'team_id\'];
$sql = \"INSERT INTO quotes SET
speaker_id=\'$id\',quotetext=\'$quotetext\',game_id=2\";
die($sql);
编辑:固定,归功于迈克尔。
<select name=\'name\'>
应该:
<select name=\'id\'>
解决方法
在您的表单中,您使用的是
<select name=\'name\'>
,但是在您的PHP脚本中,您正在调用的是$_POST[\'id\']
。
更改为:
<select name=\'id\'>
, 乍一看,它看起来像是错字。尝试:
$id = mysql_real_escape_string($_POST[\'name\']);
, 问题是您没有以\“ id \”作为名称的表单变量。在我看来,您只需将<select name=\'name\'>
更改为<select name=\'id\'>
。
, $team_id = $_POST[\'name\']
您的选择元素名为\“ name \”,而表单为\“ POST \”。
, 你需要改变
$id = $_POST[\'id\'];
至
$id = $_POST[\'name\']; // as name is what you gave your select element