【问题标题】:Is there a way to call php with an event other than $.get?有没有办法用 $.get 以外的事件调用 php?
【发布时间】:2011-10-05 00:41:16
【问题描述】:

编辑:在下面找到了我的问题的解决方案。在这里查看 -> IE must close for event with jQuery to work

我一直在四处打听,试图弄清楚这一点。如果有任何其他方法可以通过事件..在 PHP 中进行 mySql 查询,而不是 $.get。

我之前已经发布了另一个问题,以防万一有人可以帮忙 -> $.get not working in IE

现在我正在尝试找到解决我之前发布的问题的方法,因为如果 $.get 不会在 IE 中发生,那么我必须有另一种方法。也许不是 jQuery

【问题讨论】:

  • 您的其他问题同样不清楚。 $.get 应该在所有浏览器中都能正常工作,但我们需要更多详细信息来诊断您的特定问题。唯一的替代品是另一个图书馆或自己做XmlHTTPRequest,这是一种皇家痛苦。
  • 你使用php的事实如何?
  • 关于我的另一个问题@mellamokb,在 IE 中,无论我在另一页上回显什么,我显示的脚本总是返回 1 的显示,我什至尝试删除整个内容 - display 将始终为 1。我通过我在上一篇文章中放置的另一个函数调用了该函数 getbillno(tbl)。
  • @miki 我正在寻找一种通过事件调用 PHP 脚本的方法 .. 如果我想不出一种方法让我的程序在 IE 中使用 $.get 我会需要其他解决方案

标签: php internet-explorer events


【解决方案1】:

也许你可以尝试一下简写语法(因为 $.get 是 $.ajax 的简写别名)

function getbillinfo(tbl) {
    $.ajax({
        type: "POST",
        url: "getbillno.php",
        data: "tbl=" + tbl,
        success: function(bill){
            $("#billno").val(bill); });
        }
    });
}

http://api.jquery.com/jQuery.ajax/

编辑:关于您的 IE 问题,可能有几个原因

可能性一

IE 缓存对同一资源的 Ajax 调用结果,即使您 告诉它不要在您的 HTTP 标头中。因此,如果您提出请求 getbillinof.php?tbl=table 一遍又一遍,IE 就会使 请求一次,然后在将来停止制作,然后简单地返回 第一个请求的结果。为了避免这种情况,您可以调用 getbillinof.php?tbl=table&random_string_here

可能还值得在 ​​ajax() 选项中设置 cache: false 并查看 isModified 选项。

可能性二

Race Condition 导致 IE 渲染操作在之前运行 返回任何数据。然而,这不太可能,因为 success() 函数只应该在接收到数据后运行。一种 如果你正在做类似的事情,竞争条件变得更有可能

function getbillinfo(tbl) {
    $.ajax({
        type: "POST",
        url: "getbillno.php",
        data: "tbl=" + tbl,
        success: function(bill){
            var mydata = bill;
        }
    });

    $("#billno").val(mydata);
}

【讨论】:

  • 谢谢 Ben,IE 还不配合。但我不会停止尝试其他方法,但首先我必须找出真正的问题是什么。
  • 发现我必须关闭 IE 浏览器才能让 jQuery 更改页面的显示/内容。所以这就是为什么..
  • 添加到我的答案中,试图回答您关于 IE 的问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-27
  • 2019-11-17
  • 1970-01-01
相关资源
最近更新 更多