2

我想要做的是使用 ajax 从另一个 php 文件中获取时间。

所以javascript代码看起来像这样:

var timeNow = setInterval(
    $.ajax({
        url: "process/time.php",
        success: function(msg) {
            $('#time').text(msg);
        }
    }), 1000);

这是它发布到的 php 代码。

<?php echo gmdate('h:i:s A', time() + 8 * 3600);?>

有任何想法吗?

4

5 回答 5

6

setInterval可以使用 Function 对象以及要执行的代码字符串调用。$.ajax返回一个jqXHR对象,该对象被强制转换为 string "[object Object]"。该字符串随后作为代码执行,并引发错误。

您想将$.ajax调用包装在一个函数中:

var timeNow = setInterval(function() {
    $.ajax({
        url:"process/time.php",
        success: function(msg) {$('#time').text(msg);}
    });
}, 1000);
于 2012-06-15T07:11:35.227 回答
2
<?php 
if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && 
   strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) === 'xmlhttprequest'){

    header('Content-Type: application/json');
    echo json_encode(array('server_time'=>gmdate('h:i:s A', time() + 8 * 3600)));
    die;    
}
?>

<script src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
<script>
function polltime(){
    setTimeout(function(){
        $.ajax({ url: "./get_time.php", cache: false,
        success: function(data){
            $("#time").replaceWith("<p id=\"time\">"+data.server_time+"</p>");
            polltime();
        }, dataType: "json"});
    }, 1000);
}
$(document).ready(function(){
    polltime();
});
</script>


<p id="time"><?php echo gmdate('h:i:s A', time() + 8 * 3600);?></p>
于 2012-06-15T07:18:35.913 回答
1
var timeNow = setInterval(
    function() {  // you missed function within setInterval()
    $.ajax({
        url: "process/time.php",
        success: function(msg) {
            $('#time').text(msg);
        }
    }, 1000);
于 2012-06-15T07:12:22.170 回答
1

一个更简单的解决方案如下:

var timeNow = setInterval(
    function() {
    $("#time").load("process/time.php");
    }, 1000);

参见 jQueryload()方法;它是为这类事情而设计的。

于 2012-06-15T07:14:32.710 回答
-2
var timeNow = setInterval(
    $.ajax({
        url: "process/time.php",
        success: function(msg) {
            $('#time').html(msg); //you have to use html instead
        }
    }), 1000);

制作一个函数并将您的代码放在上面并调用它<body onload"function_name();">

于 2012-06-15T07:32:48.807 回答