У меня проблема с моим кодом JQuery, Ajax и PHP.
У меня есть страница, содержащая все сообщения от пользователя.
Затем на этой странице я хочу загрузить последний комментарий для этого поста, используя Ajax.
Однако это ничего не показывает.
Вот код PHP, где я вызвал функцию JQuery:
<? foreach($post_query as $post_row){ ?>
<li class="post_list">
<?php echo $post_row['text'];?>
<br/>
Latest Comment:
<br/>
<script type="text/javascript">
var post_id = $('#post_id_<?php echo $post_row['id'];?>').val();
document.write(post_id);//just to check that post_id value is not undefined
$(function(){
$.getJSON("<?php echo base_url();?>postC/latest_comment", {post_id: post_id},
function(res){
$("#result").prepend(res.text);
});
});
</script>
<? } ?>
И это мой PHP Code Igniter Controller, который обрабатывает запрос:
class postC extends CI_Controller {
function __construct()
{
parent::__construct();
$this->load->model('models_facade');
$this->load->Database();
$this->load->helper('url');
$this->load->helper('form');
$this->load->library('tank_auth');
$this->load->library('user_session_lib');
error_reporting(E_ALL ^ (E_NOTICE | E_WARNING));
}
function latest_comment(){
$post_id = $this->checkValues($_GET['post_id']);
$latestcomment = $this->models_facade->getLatestCommentForPost($post_id);
return json_encode($latestcomment);
}
}
Я протестировал вызов функции вручную и отображение последнего комментария без использования ajax, и это сработало. Таким образом, это означает, что нет ничего плохого в серверной функции в модели, которая извлекает результат из mysql.
Я также пытался сделать:
echo json_encode($latestcomment);
при попытке вызвать функцию вручную, и я мог видеть, что данные были в формате JSON.
Это значит, что с вызовом ajax что-то не так, что он не получил данные от контроллера. Я использовал GET для .getJSON и POST для .post () и .ajax ().
Я перепробовал все версии вызова jQuery Ajax: .getJSON (), .post () и .ajax (), но ни одна из них не сработала.
Я уверен, что соответствующие библиотеки Jquery были загружены правильно, так как все мои другие функции Ajax могли работать должным образом.
Кто-нибудь знает, где могут быть ошибки? Я отлаживал это целый день и ничего не получил.
Спасибо