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

Posted

技术标签:

【中文标题】在下拉菜单中进行选择时更新数据库【英文标题】:Update database when a selection is made in a drop down menu 【发布时间】:2012-02-28 10:47:38 【问题描述】:

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

有一个下拉菜单,简单的下拉菜单,没什么花哨的。在该下拉菜单中进行选择时,将运行一个 php mysql 查询,其中数据库将使用该值更新。我拥有所有的东西,我所需要的只是能够启动它的代码。

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

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


//grab information and insert into db


如何在不点击提交按钮的情况下为下拉选择执行此操作。

【问题讨论】:

【参考方案1】:

正如 cmets 中所说,您监听选择框的 onchange 事件并提交表单或使用 AJAX。这不是我的意思。

从可用性 POV 来看,我建议您重新评估这个命题,如果它真的导致数据库更新:曾经使用鼠标滚轮滚动,但不小心将焦点放在选择框上?大奖!您只是在不知情的情况下更改了数据库设置。

所以在选择框上使用onchange 来启动某些东西,立即可见 恕我直言,这是一件好事 - 当您触发它时,您就会知道。恕我直言,更改除了选择框更改值之外没有任何反馈的数据库设置是一件坏事。或者等待发生的事故。

【讨论】:

我已经准备好触发、逃离、演奏所有爵士乐。我只需要在进行下拉选择时提交表单。我尝试了以下两种方法,但都没有奏效。【参考方案2】:

你应该在寻找这样的东西

<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
?>

【讨论】:

不起作用,当我在下拉菜单中进行选择时没有任何反应。 您需要更改文件名和表单 ID 以适合您。有一个单词拼写错误,现已更正。在您的 PHP 文件中尝试打印帖子以对其进行故障排除。您应该放入 yourserverhandle.php 的唯一行应该是 print_r($_POST) 以查看发生了什么。确保 php 文件的路径正确 这里是 jsfiddle 视图 jsfiddle.net/q8v5g jsfiddle 只展示了它是如何工作的。您需要根据我之前的评论更改内容【参考方案3】:
$("#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


附:总是清理输入见mysql_real_escape_string

【讨论】:

以上是关于在下拉菜单中进行选择时更新数据库的主要内容,如果未能解决你的问题,请参考以下文章

从rails的下拉菜单中选择项目时如何更新数据库字段?

使用 AJAX 选择下拉菜单选择器时遇到问题

未使用下拉菜单选择更新散景图

通过从 javascript 文件中查询数据库,根据下拉菜单中的选择更新 div 内容

plotly:使用下拉选择更新数据

如何使用JSF和Javascript在下拉列表选择中动态更新Google Region Chart数据