我正在使用ajax请求来更改密码 这是我的代码
$.ajax({
url: 'change-password.php',
type: 'POST',
data : $("#frm-change-password").serialize(),
contentType: false,
processData: false,
beforeSend: function() {
$("#btn-change-pasword").attr('disabled','disabled')
$("#change-password-msg").html('<img src="images/loading.gif" width="30"><span>Updating Password</span>');
},
success: function (data) {
$("#change-password-msg").html(data);
$("#btn-change-pasword").removeAttr('disabled');
setTimeout(function(){ $('.success').remove(); }, 7000);
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
}
});
我的问题是我无法在&#39; change-password.php&#39;中获取表单数据。页
我得到这样的&#34;注意:未定义的索引:bsns-id in ...&#34;
我使用GET而不是POST,这一切都很完美。
答案 0 :(得分:1)
查看您的PHP代码。并查看您是通过$_GET[]
还是$_POST[]
数组访问数据。如果使用GET方法发送数据(来自AJAX),那么所有值都将在$_GET[]
关联数组中。或者,如果您使用POST方法,则数据将位于$_POST[]
数组中。
修改强>
我认为数据没有发送到服务器。让我们尝试从客户端调试。您知道如何使用Google Chrome的开发者工具吗?在Chrome浏览器中打开页面,然后在开始提交ajax之前,打开开发人员工具(Ctrl + Shift + I)。然后单击Network
选项卡。现在启动AJAX提交。然后检查正在发送的数据的详细信息。检查是否有任何数据正在提交并验证。
您还可以查看Console
窗口,看看是否显示任何错误。如果出现一些错误,那么可能会阻止其余的javascript执行。所以,请关注控制台窗口。
编辑2
现在用完了解决方案。您可能需要向我们展示更多代码或提供实时页面的任何链接(如果您上传到某处),以便我们可以检查更多。无论如何,我的最后一个建议是,你是在你正在该表单上应用的jquery验证的submitHandler
函数中进行这个ajax调用吗?因为as per the documentation of the jquery validation plugin,您可以在其中进行手动表单提交(即您的案例中的ajax调用)。
示例: