我正在尝试使用Jquery来调用ajax函数,该函数会更新MySQL数据库。我在同一个文件中有其他几个Ajax请求,它们工作正常。由于某种原因,getinvoices值未传递给PHP文件。我点击按钮调用该功能,下面是我正在使用的代码。
$( "#updatexero" ).button().on( "click", function(event) {
$.ajax({
type:'post',
url: 'invoices.php',
data: { getinvoices: 1 },
success: function(){
$( "#sql-confirm" ).dialog({
modal: true,
buttons: {
OK: function() {
$( this ).dialog( "close" );
}
}
});
}
});
});
if ( isset($_REQUEST['getinvoices'])) {
//Code to do stuff
}
如果我echo $_POST['getinvoices'];
,它会显示未定义的索引,因为没有传递任何值。我不明白为什么这不起作用,我做错了什么?
编辑:我现在已经解决了这个问题,问题是if
中的另一个invoices.php
语句未被调用,因此与Ajax查询无关。事实证明,firebug扩展对于调试非常方便。
答案 0 :(得分:1)
您的代码写得正确。 我“按原样”采用了您的代码并将其放在我自己的服务器上。
在invoices.php
我简单地说:
<?php
print_r( $_POST );
?>
这是我在调试控制台中检查时得到的结果:
我建议您使用此调试控制台检查您的AJAX请求。它包含在Chrome和FireFox中。在chrome中,您需要安装扩展Firebug Lite。
您将在我的图片中看到getinvoices
都包含在AJAX帖子中并由invoices.php
脚本接收。
如果JavaScript代码中存在语法错误,调试控制台也会提醒您。
但是..您可以更改以下代码:
$( "#updatexero" ).button().on( "click", function(event) {
到
$("#updatexero").click(function(event){
答案 1 :(得分:0)
Try this:
$( "#updatexero" ).on( "click", function(event) {
$.ajax({
type:'post',
url: 'invoices.php',
data: { getinvoices: 1 },
success: function(){
$( "#sql-confirm" ).dialog({
modal: true,
buttons: {
OK: function() {
$( this ).dialog( "close" );
}
}
});
}
});
});
答案 2 :(得分:0)
您的代码中存在语法错误。
删除.button()
,因为它与此处的语法不符。
尝试以下代码: -
$("#updatexero").on("click", function(event) {
//// Your code.
});
有关详细信息,请查看以下链接: -