【问题标题】:jQuery $.get() and $.ajax() doesn't get data from PHPjQuery $.get() 和 $.ajax() 不从 PHP 获取数据
【发布时间】:2015-01-16 15:19:52
【问题描述】:

我有一个脚本应该在单击事件后提醒从 PHP 文件中获取的消息。我已经尝试过 jQuery $.get() 和 $.ajax(),但都没有成功。 $.ajax() 有效,但会提示空消息,$.get() 会提示“null”。

load.php

<?php
    $string = "prova";
    echo json_encode($string);
?>

jquery_save.js

$(document).ready(function(){
    $("#carica").click(function(){
        loadPHP();
    });
});

function loadPHP() {
    $.get( "load.php", function( data ) {
        alert(data)
    }, "json" );
};

index.html

<!doctype html>
  <html>
    <head>
      <meta charset="utf-8">
      <title>This is just a test for Stackoverflow</title>
      <script src="//code.jquery.com/jquery-1.11.2.min.js"></script>
      <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
      <script type="text/javascript" src="jquery_save.js"></script>
    </head>

  <body>
    <form>
      <input style="background-image:url(img/lc-load.png);" type="submit" value="Carica" name="carica" id="carica">
    </form>
  </body>
</html>

通过这种方式,我得到了警报,但输出为“null”。 我也试过这个:

load.php

<?php
    $string = "prova";
    echo $string;
?>

jquery_save.js

$(document).ready(function(){
    $("#carica").click(function(){
        loadPHP();
    });
});

function loadPHP() {
    $.ajax({
        type: 'GET',
        url: 'load.php',
        success: function(data) {
            alert(data); 
        }
    });
};

这给了我一个警告,里面有注意。这两种方式都会在关闭警报消息后刷新页面(我不希望发生这种情况)。 我使用 $.ajax() 的另一个函数将变量提供给另一个 PHP 文件没有问题,但我无法从 PHP 文件中获取变量。

【问题讨论】:

  • 如果直接调用php页面,浏览器会显示什么?
  • 您确定您提供的 php 文件路径正确吗?
  • @epascarello 它也向我展示了“prova”和引号。
  • @LorDex 是的,所有三个文件都在同一个目录中。我制作了一个函数,它从 html 中获取变量并将它们传递给 PHP 文件,该文件将它们全部写入 .txt 文件。一切正常。

标签: javascript php jquery ajax get


【解决方案1】:

你必须阻止默认的点击动作 -

$("#carica").click(function(event){
    event.preventDefault();
    loadPHP();
});

由于页面重定向,您的警报没有发生。

【讨论】:

  • 谢谢,原来如此!我添加了“event.preventDefault();”之前,但也许我写错了,因为它并没有改变什么。现在一切正常,非常感谢!
【解决方案2】:

您正在使用提交按钮,该按钮会导致未处理的提交事件。

尝试像这样改变它

    <input style="background-image:url(img/lc-load.png);" 
type="button" value="Carica" name="carica" id="carica" />

您是否使用提交按钮为禁用 javascript 的浏览器提供后备?如果是这种情况,您需要阻止提交事件

【讨论】:

    猜你喜欢
    • 2011-09-17
    • 1970-01-01
    • 2014-05-03
    • 1970-01-01
    • 1970-01-01
    • 2015-11-11
    • 1970-01-01
    • 1970-01-01
    • 2014-10-17
    相关资源
    最近更新 更多