【问题标题】:Basic Ajax with jQuery - Execute PHP File使用 jQuery 的基本 Ajax - 执行 PHP 文件
【发布时间】:2012-08-09 02:30:54
【问题描述】:

由于某种原因,我无法让它工作。我想要做的是,当单击按钮时,(通过 ajax)执行一个 php 文件。 Aka,如果我不使用 ajax,我们会看:

<a href="file.php">dfgdfg</a>

我希望在不离开页面的情况下执行文件。

这是我的自动取款机:

$(".vote-up").live('click', function(e) {
$.ajax("file.php", function(){
       alert("Executed file");
   });
});

这似乎不起作用。我真的很困惑 jQuery ajax 函数一般是如何工作的,而没有处理任何远程复杂的事情。

添加问题:

.ajax({
       url: 'includes/login-check-jquery.php',
       success: function (data) {
            if(data == 1){
                alert("Logged in!!!");
            }else{
                window.location = data;
            }
        error: function (xhr, status, error) {
        // executed if something went wrong during call
        if (xhr.status > 0) alert('Error: ' + status); // status 0 - when load is interrupted
        }
    });
});

在上面的代码中,如果返回的数据等于“登录”,则会出现一个消息框。否则它将重定向到该位置(以数据形式发送)。由于某种原因,此 if 语句不起作用,但数据正在按预期返回。

我的 PHP 代码是:

<?php  
if (!$user->logged_in){
    echo "../login/index.php";
}else{
    echo "1";
}

?>

有什么想法吗?

【问题讨论】:

  • 尝试用 on 替换 live,因为 live 已被弃用!还要检查php文件的路径是否正确
  • 这在我看来并没有错——您是想从 PHP 文件中获得响应,还是只是设置了一些东西而忘记了它?
  • 我不相信您的匿名函数会在没有从您的网络服务器获得非错误状态代码的情况下执行。您可以使用 Firebug 或 Chrome 的内置开发人员工具的网络选项卡之类的工具来查看请求中的状态代码。
  • 检查@therao 的答案——您可能希望确保以纯文本或 JSON 形式传回某些内容。

标签: php jquery ajax


【解决方案1】:

如果您不想离开页面,请执行

$(".vote-up").live('click', function(e) {
    e.preventDefault();
    ...

如果需要,可以更新 ajax

$.ajax({
    url: 'file.php',
    success: function (data) {
        // this is executed when ajax call finished well
        alert('content of the executed page: ' + data);
    },
    error: function (xhr, status, error) {
        // executed if something went wrong during call
        if (xhr.status > 0) alert('got error: ' + status); // status 0 - when load is interrupted
    }
});

可以删除错误回调部分,如果您追求简单性而不是可用性,并且可以通过引用 jquery ajax doc 添加更多选项。

【讨论】:

  • 我对此有点困惑。 data 是一个变量,它被分配了 php 文件返回的值吗?
  • 从测试来看,是的。谢谢:)这会工作:)
  • 是的。抱歉没有真正完成阅读的快速回复;)
  • 一切顺利。我理解它,我让它工作得很好:)
  • 如果您有任何想法,请在最后提出一个问题:)
猜你喜欢
  • 2018-09-24
  • 2015-08-05
  • 2014-08-15
  • 2017-09-25
  • 2019-02-19
  • 2012-11-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多