2013-08-28 2 views
1

У меня есть контроллер называется TimeAjax в Codeigniter с помощью JQuery

<?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 контроллер возвращать массив, объект или даже переменной и т.д., как я могу это сделать?

+1

вы должны вернуть массив, используя json_encode, например: обратный json_encode ($ timeArray) ;, а затем Аякса часть вы должны декодировать и перебирать массив, как вы хотите –

ответ

2

Вы можете использовать json-encode function на стороне сервера.

<?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()); 
    } 
} 
?> 

и проанализировать Json с JSON.parse на javascript. Также вы можете использовать $.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); 
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); 
Смежные вопросы