Javascript 如何使用ajax从下拉菜单更新mysql数据库
如问题所示,您能告诉我如何在ajax的帮助下使用下拉菜单更新mysql数据库吗。我想在不重新加载整个网页的情况下更新数据库。当用户单击“编辑”按钮时,从下拉列表中选择的选项将被更新。搜索了一段时间后,我找到了一些关于这种方法的教程,并从中获取了ajax代码。但当我在我的数据库中尝试这些时;没有成功。下面是我的php脚本的示例代码,父文件在一个名为samefile.php的php文件中同时包含ajax脚本和php代码。下面的脚本只包含有问题的代码,一些html和php代码被故意删除Javascript 如何使用ajax从下拉菜单更新mysql数据库,javascript,php,jquery,mysql,ajax,Javascript,Php,Jquery,Mysql,Ajax,如问题所示,您能告诉我如何在ajax的帮助下使用下拉菜单更新mysql数据库吗。我想在不重新加载整个网页的情况下更新数据库。当用户单击“编辑”按钮时,从下拉列表中选择的选项将被更新。搜索了一段时间后,我找到了一些关于这种方法的教程,并从中获取了ajax代码。但当我在我的数据库中尝试这些时;没有成功。下面是我的php脚本的示例代码,父文件在一个名为samefile.php的php文件中同时包含ajax脚本和php代码。下面的脚本只包含有问题的代码,一些html和php代码被故意删除 //THI
//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////////////////////////////////////
?>
您已经尝试打印在ajax请求中发送的值。您正在将此.value传递给函数get_da(str)。但我认为您在任何地方都在使用它,在ajax帖子中,您发送的值如下
data: {dropdown1:$('#dropdown').val()}
但这不会从下拉列表中发布您选择的vaule,请尝试以下操作:
<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>";
您到底需要什么,用户可以更改下拉列表值,一旦他单击“编辑”,您希望该下拉列表值更新到您的DB@NaveenThally我一直在寻找通过点击编辑来更新数据库,但我也愿意通过简单地选择下拉列表来更新我的数据库。如果您能为这两种方法提供解决方案,将会很有帮助。您是否注意到您正在设置变量
$submit
,但没有使用它,并且下一行使用了一个不存在的变量$name
?也许您打算编写$name=$\u POST[“dropdown1”]代码>?正如我所说,我没有ajax和js方面的经验,所以我从一些教程网站复制了这些代码,并试图根据这些代码修改我的php脚本。我复制了这个想法$submit=$\u POST[“dropdown1”];也谢谢你的回复。我已经包含了更多关于脚本细节理解的信息。当用户选择特定的下拉值(例如:TOM)时,ajax脚本应该获取所选的值,然后将这些值传递给php脚本以更新数据库。上面的ajax脚本不适用于我的PHP。我不擅长AJAX,如果可能的话,你能用AJAX和php提供完整的脚本吗?请详细说明你的问题。我不明白您是要更新数据库中的选定id还是要更新选定id的名称?我要同时传递id和名称。在第三个块中,针对特定id的数据库更新名称。第三个块的实际脚本如下$sql=“update table SET name='$name',其中id='$id'$id是另一个表的变量。根据您的要求进行更新。我认为现在您不应该有任何问题。
<?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>";
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";}
}
?>