【问题标题】:Jquery + Append + PHPJquery + 追加 + PHP
【发布时间】:2016-03-29 19:11:40
【问题描述】:

我的代码(index.html)

<script>
    $(document).ready(function() {
        var interval = setInterval(function() {
            $.get("load_txt.php", { 'var1': 4, 'var2' : 52},
                function(data){ $('#msg').append(data); }, "json");
            });
        }, 1000);
    });
</script>
<p id='msg'></p>

我的代码(load_txt.php)

<?php
$var1 = $_GET['var1'];
$var2 = $_GET['var2'];

    $data = "var1= " . $var1 . " " . "var2= " . $var2;

    echo json_encode($data);
?>

它不起作用,#msg 中没有显示任何内容。你能看出一些错误吗?如果是,请回答,谢谢:)

【问题讨论】:

  • 无。控制台很干净
  • 你应该检查什么返回你的 php 脚本,我猜是一个错误。顺便说一句,每秒发送一个请求而不等待任何前一个请求完成是不行的

标签: javascript php jquery append


【解决方案1】:

您实际上并没有返回 JSON。你正在通过json_encode 运行一个字符串,没有密钥,这只是给你一个字符串。然后将其返回给期望 JSON 的 jQuery,因此很可能在尝试反序列化纯字符串时抛出错误。

要解决此问题,请将您的 PHP 代码更改为实际返回 JSON:

echo json_encode(array('var1' => $var1, 'var2' => $var2));

并修改您的 jQuery 以从反序列化的对象中读取:

var interval = setInterval(function() {
    $.get("load_txt.php", { 
        'var1': 4, 
        'var2': 52
    }, function(data) { 
        $('#msg').append(data.var1 + ' ' + data.var2); 
    }, "json");
}, 1000);

还要注意,使用setInterval 发出 AJAX 请求并不是一个好主意,因为如果请求花费的时间比完成时间长,它们会堆积起来。最好使用setTimeout 并在前一个请求完成后发出新请求:

function makeRequest() {
    $.get("load_txt.php", { 
        'var1': 4, 
        'var2': 52
    }, function(data) { 
        $('#msg').append(data.var1 + ' ' + data.var2); 
        setTimeout(makeRequest, 1000); // on success
    }, "json");
}
makeRequest(); // on load

【讨论】:

  • 我完全不知道为什么,但它仍然不起作用。截图:imgur.com/a/IcqV0
  • 您能否也检查一下控制台的“网络”选项卡以查看请求的状态。
【解决方案2】:

只是语法错误:

这段代码可以正常工作:

$(document).ready(function() {
    var interval = setInterval(function() {
        $.get("load_txt.php", { 'var1': 4, 'var2' : 52},
            function(data){ $('#msg').append(data); }, "json");
    }, 1000);
});

;注意,这个(**) 需要删除:

$(document).ready(function() {
    var interval = setInterval(function() {
        $.get("load_txt.php", { 'var1': 4, 'var2' : 52},
            function(data){ $('#msg').append(data); }, "json");
        **});**
    }, 1000);
});

【讨论】:

    猜你喜欢
    • 2013-05-21
    • 2013-03-02
    • 2013-04-26
    • 2012-07-12
    • 2014-07-13
    • 2018-08-16
    • 2012-05-25
    • 2011-06-09
    • 2014-06-07
    相关资源
    最近更新 更多