我正在用Code Igniter 2.1.3開發一個網站。我正在使用AJAX調用將數據發佈到我的控制器,但出於某種原因數據未被髮送。AJAX調用不會發布數據
我使用的AJAX調用遍及整個應用程序,它們都工作得很好,只是不是這個。
我的觀點:
<div id="ajaxResult">
<div class="page-header"><h2>Review Comments</h2></div>
<div class="row-fluid">
<div class="span12">
<?php if(count($comments)): ?>
<table class="table">
<thead>
<tr>
<th>Author</th>
<th>Email</th>
<th>IP Address</th>
<th>Date</th>
<th>Comment</th>
<th>Approve</th>
</tr>
</thead>
<tbody>
<?php foreach($comments as $comment): ?>
<tr>
<td>
<?php echo $comment->comment_author; ?>
</td>
<td><?php echo $comment->comment_author_email; ?></td>
<td><?php echo $comment->comment_author_IP; ?></td>
<td>
<?php
$date = new DateTime($comment->comment_date);
$date = $date->format('d/m/Y');
echo $date;
?>
</td>
<td>
<?php echo $comment->comment_content; ?>
</td>
<td>
<?php
$approve = array(
'name' => 'comment_approved',
'class' => 'approve',
'value' => '1',
'data-commentid' => $comment->id
);
echo form_checkbox($approve);
?>
</td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
<?php else: ?>
<p>No comments were found for review.</p>
<?php endif; ?>
</div>
</div>
</div>
<script>
$(function()
{
$('.approve').on('click', function()
{
var id = $(this).data('commentid'); alert(id);
$.ajax({
url: "<?php echo site_url('blog/admin/review_comment'); ?>",
type:'POST',
data: { comment_id: id },
success: function(data) { $('#ajaxResult').html(data); } // End of success function of ajax form
}); // End of ajax call
});
});
</script>
我的控制器功能:
public function review_comment()
{
$this->load->helper('form');
$this->load->model('blog_comment_m');
if(isset($_POST['comment_id']))
{
$id = $this->input->post('comment_id');
$data['comment_approved'] = 1;
$this->blog_comment_m->save($data, $id);
$this->data['comments'] = $this->blog_comment_m->get_by(array('comment_approved'=>0));
$this->load->view('admin/review_comments', $this->data);
}
else
{
$this->data['comments'] = $this->blog_comment_m->get_by(array('comment_approved'=>0));
$this->data['subview'] = 'admin/review_comments';
$this->load->view('admin/_layout_main', $this->data);
}
}
我試圖提醒COMMENT_ID和它確實給我的值爲1。在控制器我做var_dump($_POST)
,總是空。我也試過if(isset($_POST['comment_id']))
。在控制器中,它永遠不會進入if(isset($_POST['comment_id'])
聲明。
這是爲什麼?
確定數據是否被髮送的最好方法是檢查網絡層。 'firefox','chrome'的Firebug addon'(右鍵點擊 - > Inspect element - > Network標籤),或者安裝'fiddler' http://fiddler2.com/。請確認數據沒有通過網絡層發送。否則,問題在於別處。 – Chilpol
你也可以看到發送到控制檯標籤。 – MahanGM
如果我看看螢火蟲中的NET標籤,我看到:狀態:302錯誤找到(閱讀關於這一點,我沒有重定向任何不知道爲什麼我得到這個錯誤在Post標籤中,我看到這個:Parameters comment_id = 1 Source comment_id = 1所以這一切對我來說都很好嗎?還有什麼我應該檢查嗎?非常感謝你 –