如何解决将HTML Select传递到PHP变量中
| 我有几个看起来像这样的选择语句。我需要将php变量传递到我的数据库中。 <select name=\"gamestart\" >
<?php for($gamestart=1; $gamestart<=24; $gamestart++)
echo \"<option value=\'$gamestart\'>$gamestart:00</option>\";
?>
</select>
这是我在数据库中的插入语句以及其他具有相同问题的其他类似变量。
<?php
$mysql_query = \"INSERT INTO soccer_games (gamestart,gameend)
VALUES (\'$gamestart\',\'$gameend\')\";
$this->db->query($mysql_query);
?>
截至目前,值已放入数据库中,但是插入INSERT \到数据库中的值是数字25(无论您在循环中看到的是哪个选项),无论我在表格中选择的是什么值。
===============
编辑1:
问题可能出在我没有使用表格(我以我无穷的智慧没有意识到我为此需要表格)。
我以为我需要这种性质的东西...
public function insertstatements(){
<?php
$mysql_query = \"INSERT INTO soccer_games (gamestart,\'$gameend\')\";
$this->db->query($mysql_query);
?>
}
<form method=\"post\" action=\"<?php insertstatements(); ?>\">
<select name=\"gamestart\" >
<?php for($gamestart=1; $gamestart<=24; $gamestart++)
echo \"<option value=\'$gamestart\'>$gamestart:00</option>\";
?>
</select>
</form>
解决方法
您可以使用
$_POST[\'gamestart\']
或$_GET[\'gamestart\']
访问从表单发送的gamestart
,具体取决于表单中设置的method
(如果没有method
属性,则为GET)。
在我猜for循环在数据库插入逻辑之前,您的$gamestart
被设置为25
,因此其值将被设置为25
。
在将变量放入查询之前,请确保对变量使用mysql_real_escape_string
,否则您很容易遭受一些SQL注入攻击。永远不要相信用户的输入!
因此,一个正确的例子是(我不知道您从哪里得到ѭ12but,但是如果它也是从表格中获得,请执行相同的操作):
$gamestart=mysql_real_escape_string($_POST[\'gamestart\']);
$mysql_query = \"INSERT INTO soccer_games (gamestart,gameend)
VALUES (\'$gamestart\',\'$gameend\')\";
编辑:如果启用了register_globals
,则可以像$gamestart
一样访问GET和POST变量。但是您应该关闭它,而不要编写任何依赖它的代码。有关原因,请在Google上搜索。
, 您的form
标签应如下所示:<form action=\"thepage.php\" method=\"post\">
您需要将文件的URL放在action
属性中(如果您愿意,可以使用表单所在的页面)。提交表单后,数据将通过HTTP POST发送到该页面(在这种情况下,如果您指定“ 19”,则可能是GET)。
在将数据发送到的页面上,您可以使用$_POST[\"fieldName\"]
从表单中检索数据。
因此,您可以执行以下操作(假设gameend
是表单中另一个字段的名称):
$gamestart = mysql_real_escape_string($_POST[\"gamestart\"]);
$gameend = mysql_real_escape_string($_POST[\"gameend\"]);
$mysql_query = \"INSERT INTO soccer_games(gamestart,gameend) VALUES(\'$gamestart\',\'$gameend\')\";
, 您的表单标签无法按照您想要的方式工作。
<form method=\"post\" action=\"<?php insertstatements(); ?>\">
这将执行insertstatements
,然后不回显任何内容,从而形成一个如下形式的标签:
<form method=\"post\" action=\"\">
空白操作将使脚本POST
。如果这是您想要的内容,则将其保留,或者通过将操作设置为该页面,可以将其发布到特定页面。
<form method=\"post\" action=\"submit.php\">
要从表格中读取变量,请使用$_POST
,例如:$_POST[\'gamestart\']
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。