已更新:現在可以運行100%。AJAX + Codeigniter實時頁面加載功能
這些代碼段允許用戶點擊視圖上的刪除按鈕,該按鈕向我的控制器發送AJAX請求以與數據庫交互(刪除記錄)。然後反饋回調函數中發生的結果,以更新當前視圖(沒有頁面加載)記錄被刪除並隱藏該元素。
查看:
<?php
// Output the records
if($result)
{
foreach ($result as $rows => $row)
{
echo "<tr id=\"row" . $row['id'] . "\">";
echo "<td>" . $row['id'] . " - " . $row['name'] . "</td>";
echo "<td>" . $row['logo_path'] . "</td>";
echo "<td>" . $row['date_created'] . "</td>";
echo "<td>" . "<a href=\"#\" id=\"" . $row['id'] . "\" class=\"delete\">Delete</a><br>" . "</td>";
echo "</tr>";
}
} else {
echo "There are no platforms to show";
}
?>
<script type="text/javascript">
$("a.delete").click(function(e)
{
e.preventDefault();
var platform_id = $(this).attr('data-id');
var row = $(this).attr('id');
$.ajax({
type: "POST",
url: "platform/delete",
dataType: "json",
data: 'platform_id='+platform_id,
success: function(result){
if (result.success == 1)
{
$("#row" + row).fadeOut();
//document.getElementById(row).style.display = 'none'
}
},
error: function(result){
alert(result.message);
}
});
});
</script>
控制器:
function delete()
{
$result=array();
$this->load->model('platform_model');
$platform_id = $this->input->post('platform_id');
if($this->platform_model->delete($platform_id))
{
$result['success']= 1;
$result['platform_id']= $platform_id;
$result['message']= "Success";
} else {
$result['success']= 0;
$result['message']= "Error";
}
die(json_encode($result));
}
型號:
function delete($platform_id)
{
$this->db->where('id =', $platform_id);
if ($this->db->delete('platforms'))
{
return TRUE;
}
else
{
return FALSE;
}
}
我已經更新了我的問題,以更具體地解決手頭的問題。我不讚賞@omar和其他人關閉我的問題,而沒有給予提煉的機會。 – evade 2013-05-10 15:58:50
關閉不確定,如果根據需要進行改進,問題會以非常快的速度重新打開。 – 2013-05-10 16:13:57
非常好,我不明白downvoting那麼,它應該是一個國旗或其他東西 - 但我想我不得不看看事情如何處理在這裏。任何問題現在都更有針對性。 – evade 2013-05-10 18:29:00