在下拉菜单中进行选择时更新数据库

时间:2012-02-06 23:34:56

标签: php javascript jquery mysql post

我不知道从哪里开始,所以如果已经有一个像我这样的问题的答案我会很感激!基本上问题就是这一切,这就是我想要的:

有一个下拉菜单,简单的下拉菜单,没什么特别的。当在该下拉菜单中进行选择时,将运行php mysql查询,其中将使用该值更新数据库。我拥有所有的部分,我需要的是能够全力以赴的代码。

例如,当您在表单上点击提交时,通常会输入:

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

//grab information and insert into db

}

如何在不必单击提交按钮的情况下进行下拉选择。

3 个答案:

答案 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