以下是这种情况:
我需要将php脚本加载到模态窗口中。为了做到这一点,我需要使用加载模态窗口的按钮作为标记,其中href指向该脚本。然而,在加载该脚本之前,我需要Ajax将信息发送到该PHP脚本以运行查询。该查询的结果显示在该模态窗口中。我遇到的问题是单击按钮时,href请求和ajax请求都被处理,页面返回空(查看控制台,看到两个xhr请求,一个带有Ajax信息,另一个带有名称) php文件(我认为是href请求))。 $ _POST的var_dump和数组大小= 0
这是按钮代码:
a href='extschedule.php' type='submit' id='editButton' class='btn btn-primary btn-sm user editButton' data-toggle='modal' data-target='#editModal' data-id='$id'
这是我的ajax代码:
$('.editButton').click(function(e){
var getid = $(this).data('id');
$.post('extschedule.php', {getid: getid});
e.preventDefault();
当我选择按钮时,我的控制台中有什么内容:
XHR Loaded (extschedule.php - 200 OK - 3.119945526123047ms - 953B)
VM1660:3 **http://localhost/extschedule.php?getid=146**
VM1661:3 Object {startedDateTime: "2015-01-26T17:26:59.392Z", time: 3.119945526123047, request: Object, response: Object, cache: Object…}
VM1663:3 XHR Loaded (extschedule.php - 200 OK - 13.669967651367188ms - 1.077KB)
VM1664:3 **http://localhost/extschedule.php**
VM1665:3 Object {startedDateTime: "2015-01-26T17:26:59.398Z", time: 13.669967651367188, request: Object, response: Object, cache: Object…}
我对ajax和php相当新,但我的猜测是对同一个php文件的两个请求都会导致结果出现问题。我再次需要传递所选按钮的值,同时通过href将php脚本加载到模态窗口中。有人可以帮助我工作,或者建议不同的策略来实现这个目标吗?
P.S。 - 我考虑编辑href的url,将getid设置包含在变量中,具体取决于data-id值。它适用于第一个,但如果我退出模态窗口并单击另一个用户,它将不会加载新值。
答案 0 :(得分:0)
要防止ajax请求和提交发生,请将type =“submit”更改为type =“button”并忘记href。
在您的示例中,onclick事件似乎已经向'extschedule.php'发出请求,如果您正在进行ajax调用,则不想提交表单。
提交将控制权转移到另一个页面实例,而ajax向服务器发出请求,该请求将结果返回给调用页面。