我不知道从哪里开始,所以如果已经有一个像我这样的问题的答案我会很感激!基本上问题就是这一切,这就是我想要的:
有一个下拉菜单,简单的下拉菜单,没什么特别的。当在该下拉菜单中进行选择时,将运行php mysql查询,其中将使用该值更新数据库。我拥有所有的部分,我需要的是能够全力以赴的代码。
例如,当您在表单上点击提交时,通常会输入:
if (isset($_POST['submit']))
{
//grab information and insert into db
}
如何在不必单击提交按钮的情况下进行下拉选择。
答案 0 :(得分:3)
正如评论中所说,您会收听选择框的onchange
事件并提交表单或使用AJAX。这不是我的观点。
从可用性POV我建议你重新评估这个命题,如果它确实导致数据库更新:曾经使用鼠标滚轮滚动,而意外地关注选择框?大奖!您刚刚更改了数据库设置而没有发现它。
因此,在选择框上使用onchange
启动某些内容,立即可见是恕我直言 - 你会知道,当你触发它时。除了选择框更改值之外没有任何反馈更改数据库设置是恕我直言。或者等待发生的事故。
答案 1 :(得分:1)
你应该找这样的东西
<form id="testform">
<select id="yourselect" name="yourselect" onChange="updateDb()">
<option value="somevalue">Please select</option>
<option value="somevalue1">Something</option>
</select>
</form>
你的Javascript函数看起来像这样
function updateDb() {
// I am using jquery for ajax
$.post("yourserverhandle.php", $("#testform").serialize());
}
这就是你的“yourserverhandle.php”的样子
<?php
$query = "update yourtable set something='".mysql_escape_string($_POST["yourselect"])."' where id='something'";
.... mysql connect, execute
?>
答案 2 :(得分:0)
$("#DDL_ID").change(function(){
$.ajax({
url:'/some.php',
type:'POST',
data:{submit:$(this).val()},
success:function(data){
//do something here if the server return anything
},
error:function(){
console.log("something bad happened");
}
});
});
在php端
if (isset($_POST['submit']))
{
//grab information and insert into db
}
P.S。始终清理输入,请参阅mysql_real_escape_string