jquery在传递ajax值时充当href

时间:2015-01-26 17:49:55

标签: javascript php jquery html ajax

以下是这种情况:

我需要将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值。它适用于第一个,但如果我退出模态窗口并单击另一个用户,它将不会加载新值。

1 个答案:

答案 0 :(得分:0)

要防止ajax请求和提交发生,请将type =“submit”更改为type =“button”并忘记href。

在您的示例中,onclick事件似乎已经向'extschedule.php'发出请求,如果您正在进行ajax调用,则不想提交表单。

提交将控制权转移到另一个页面实例,而ajax向服务器发出请求,该请求将结果返回给调用页面。