1

我有控制器叫Time

<?php
class Time extends CI_Controller {
  // just returns time
  public function index() {
    echo time();
  }
}
?>

此控制器输出当前时间,并通过在视图中使用以下代码加载。

window.setInterval(function() {
  $.get('time/index',
    // when the Web server responds to the request
    function(time) {
      $('#mydiv').html(time+'<br/>');
    }
  )
}, 5000);

可以看出,只能使用 html 响应,但是如果我希望Time控制器返回数组、对象甚至变量等,我该怎么做呢?

4

2 回答 2

2
<?php

class Time extends CI_Controller 
{
  // just returns time
  public function index()
  {
    echo json_encode(array('time'=>time());
  }
} 

?>

在你看来

window.setInterval(
function()
{

$.get('time/index',

      // when the Web server responds to the request
        function(data) 
        {
          $('#mydiv').html(data['time']+'<br/>');
        },"JSON"
       )
}
,5000);
于 2013-08-28T05:37:42.293 回答
2

您可以在服务器端使用json-encode 函数

<?php
class Time extends CI_Controller {
  public function index() {
    // encode the what ever value (array, string, object, etc) 
    // to json string format
    echo json_encode(time());
  }
}
?>

并在 javascript 上使用 JSON.parse 解析 json。你也可以使用$.parseJSON

window.setInterval(function() {
  $.get('time/index',
    // when the Web server responds to the request
    function(returnedValue) {
      // parse json string to json object
      // and do object or varible manipulation
      var object = JSON.parse(returnedValue);
    }
  )
}, 5000);
于 2013-08-28T05:44:59.343 回答