自动提交下拉值到数据库

Posted

技术标签:

【中文标题】自动提交下拉值到数据库【英文标题】:autosubmit drop down value into database 【发布时间】:2015-07-15 08:44:16 【问题描述】:

我正在尝试使用 onchange=this.form.submit() 将下拉菜单的值自动提交到数据库中,但我无法使其工作。谁能帮帮我吗。任何建议都将受到高度赞赏。

代码如下:

<? 
require_once ('database.php');
?>

<form action="" method=post>
<select name="assignee"  onchange="this.form.submit()">
<option value="0">Unassigned</option>   
        <?
        $find_selected = mysql_query("select assign_to from orders where id = $id");
        $asignee =mysql_fetch_row($find_selected);
        $list=mysql_query("SELECT id, full_name from user where username <> 'root' and nature = 3");
        while($row_list=mysql_fetch_assoc($list))
        ?>
        <option value="<? echo $row_list['id']; ?>"<? if($row_list['id']== $asignee['0']) echo "selected";  ?>><? echo $row_list['full_name'] ?></option>
        <?
        
        mysql_free_result($list);
        mysql_free_result($find_selected);
        ?>
</select>
</form>
<?php 

if(isset($_POST['submit']))

$sql = "UPDATE `orders` SET `assign_to` =  '$_POST['assignee']' WHERE `id` = '$id' ";
mysql_query($sql) or die(mysql_error());    



?>

【问题讨论】:

这段代码中没有带有name="submit"的元素,也许你的意思是isset($_POST['assignee']) 你是如何得到 $id 的?并使用 PDO 和 MySQLi 进行数据库访问,此功能已弃用。 转义你的输入!除非你想见Bobby Tables @shashikant $id 基于订单id @Scuzzy 我尝试使用 isset($_POST['assignee']) 但它没有更新到数据库中.. 【参考方案1】:
<?php 

if(isset($_POST['assignee']))

$sql = "UPDATE `orders` SET `assign_to` =  '$_POST['assignee']' WHERE id=$id";    
mysql_query($sql);


?>

您刚刚定义了查询但没有执行它

【讨论】:

感谢指出我的错误..但它仍然无法更新到数据库中 尝试 var_dump($_POST['assignee']);查看您的表单是否已提交以及提交的内容 当我在下拉菜单中选择一个值时..它输出字符串(3)“212”..“212”实际上是user_id $sql = "UPDATE \`orders\` SET \`assign_to\` = '$_POST['assignee']' where `ID`= '$id' " 仍然有语法错误:(除非我喜欢 '$_POST['assignee']' 但它仍然不起作用

以上是关于自动提交下拉值到数据库的主要内容,如果未能解决你的问题,请参考以下文章

在servlet中怎样获取jsp中下拉列表中的值

从自动完成列表提交查询,而无需点击提交按钮

asp.net mvc 如何实现自动提交或保留用户未登录前得信息

(尚012)Vue表单数据的自动手集(表单数据提交,需要收集表单数据)

Wordpress 搜索和过滤器自动提交

select单击提交表单