如何使用ajax从下拉菜单中更新mysql数据库
How using ajax can update mysql database from dropdown menu
正如问题所示,你能告诉我如何在ajax的帮助下使用下拉菜单更新mysql数据库吗。我想更新我的数据库,而不是重新加载我的整个网页。当用户单击编辑按钮时,从下拉列表中选择的选项将更新。经过一段时间的搜索,我找到了一些关于这个方法的教程,并从中获取了ajax代码。但当我在数据库中尝试这些时;结果没有成功。下面是我的php脚本的示例代码,父文件在一个名为samefile.php的php文件中同时包含ajax脚本和php代码。下面的脚本只包含有问题的代码,一些html和php代码被有意删除。
//THIS AJAX SCRIPT FETCHES VALUES FROM THE SELECTED DROPDOWN
<script>
function get_da(str){
$.ajax({
url: "samefile.php",
type: "POST",
async: true,
data: { dropdown1:$("#dropdown").val()}, //your form data to post goes here as a json object
dataType: "html",
success: function(data) {
$('#output').html(data);
drawVisualization();
},
});
}
);
</script>
///////////////////////////////FIRST BLOCK//////////////////
<?php
//THIS PHP SCRIPT GENERATES DROP DOWN VALUES FROM DATABASE
echo "<select name='dropdown' onChange='get_da(this.value)'>";
while ($row = mysql_fetch_array($result))
{
if($row['id']==$row['user'])
{
echo "<option value='" . $row['id'] . "' selected>" . $row['name'] . "</option>";
}
else{
echo "<option value='" . $row['id'] . "'>" . $row['name'] . "</option>";
}
}
echo "</select>";
/////////////////////////////SECOND BLOCK//////////////////////////////
//THIS PHP SCRIPT VALIDATES THE SELECTED DROPOWN VALUE AND PASS THOSE VALES FOR FURTHER PROCESSING.
if(isset($_REQUEST['dropdown1']))
{
$name=get_the_selected_dropdown_name; //i dont know how to fetch name from dropdown menu
$sql = "UPDATE table SET name = '$name' WHERE id =10";
mysql_real_escape_string($sql);
$result = mysql_query($sql) or die (mysql_error());
if ($result==1) {
echo "Success";
}
else { echo "Failed";}
}
//////////////////////////////THIRD BLOCK////////////////////////////////////
?>
我相信这就是我上面的剧本的工作原理。当用户从下拉菜单中选择特定选项时,此函数onChange='get_da(this.value)'
将值(id和name)发送到ajax查询。在ajax查询中,收集下拉列表值(id和name)并将其重命名为dropdown1(data: { dropdown1:$("#dropdown").val()}
),然后将其传递给同一文件中的php脚本。Php脚本使用这个if(isset($_REQUEST['dropdown1']))
确认来自ajax的请求,并且里面的脚本将被执行。
如果我把代码弄得一团糟,请原谅我。我不擅长java脚本和ajax,所以不确定我的代码是否适合这些脚本。如果可能的话,您可以建议使用ajax下拉列表更新mysql数据库的任何其他脚本。
编辑
ID DROPDOWN VALUE
1 ROY
2 TOM
3 CHASE
4 THOMAS
5 GEORGE
6 MICHAEL
已经尝试打印您在ajax请求中发送的值。您正在将这个.value传递给函数get_da(str)。但我认为你在任何地方都在使用它,在ajax帖子中,你发送的值就像一样
data: {dropdown1:$('#dropdown').val()}
但这不会发布你从下拉列表中选择的吹嘘,试试这样:
<script>
function get_da(this){
var id = $("#dropdown option:selected").val();
var selectedName = $("#dropdown option:selected").text();
$.ajax({
url: "samefile.php",
type: "POST",
async: true,
data: { dropdown1:id, name:selectedName}, //your form data to post goes here as a json object
dataType: "html",
success: function(data) {
$('#output').html(data);
//drawVisualization();
},
});
}
</script>
希望这能奏效。
你的下拉脚本应该是这样的:
<?php
echo "<select name="dropdown" onchange="get_da()" id="dropdown">";
while ($row = mysql_fetch_array($result))
{
if($row['id']==$row['user'])
{
echo "<option value='" . $row['id'] . "' selected>" . $row['name'] . "</option>";
}
else{
echo "<option value='" . $row['id'] . "'>" . $row['name'] . "</option>";
}
}
echo "</select>";
这将把你选择的值从下拉列表发送到你的samefile.php.而且你的php脚本做得不好,应该是这样的:
if(isset($_REQUEST['dropdown1']))
{
$id=$_REQUEST['dropdown1'];
$name=$_REQUEST['name'];
$sql = "UPDATE table SET name = '$name' WHERE id ='$id'";
mysql_real_escape_string($sql);
$result = mysql_query($sql) or die (mysql_error());
if ($result==1) {
echo "Success";
}
else { echo "Failed";}
}
?>
- 向更新mysql查询传递一个id
- 如何制作倒计时计时器并在时间到时更新MySQL记录
- AJAX使用从PHP生成的HTML调用的函数更新MYSQL数据库
- 卸载前正在更新MySQL字段
- 使用AJAX更新MySQL数据库
- 使用拖放后更新MySQL中的持久数据
- 使用 IF 语句更新 mysql 查询
- 如何使用PHP和AJAX更新MySQL,而无需刷新页面
- 当谷歌地图标记移动时更新mysql数据库
- 通过使用PHP和AJAX更新mySQL中的Google地图标记位置值
- 更新 MySQL 数据库中的主干.js模型
- 如何更新 MySQL 数据库
- 使用 ajax 使用 jquery 数组更新 mysql 数据库
- 使用JSP和JavaScript更新mysql表
- 如何使用ajax从下拉菜单中更新mysql数据库
- PHP页面未更新MySQL数据
- 如何使用Node.js中的MySQL查询更新MySQL数据库中的JSON记录
- 更新MySql javascritpt中的数据
- 将JS数组传递给PHP,然后更新MySQL
- 我正在尝试使用ajax和无点击按钮自动更新mysql数据库