删除条目时,Ajax不会重新加载表

时间:2016-04-03 19:22:41

标签: javascript php ajax codeigniter

嗨,我在视图中有以下按钮

<button onclick="delete_article(<?php echo $property['ID']?>)" type="button" class="btn btn-danger">Delete</button>

对应于我的代码控制器中的此功能

function delete($id)
{
    $this->News_m->delete($id);
    echo json_encode(data);
}

如果需要,这是我的型号代码:

function delete($id){
    $this->db->where('ID', $id);
    $this->db->delete('news');
}

我是AJAX的新手,想知道我将如何为此编码ajax函数我目前有以下内容但它无效!有人可以帮我一把。

这就是我目前在script.js文件中的内容

function delete_article(id){
    // ajax delete data in database
    $.ajax({
        url : "http://localhost/eaglefruit/news/delete" + id,
        type: "POST",
        dataType: "JSON",
        success: function(data){

        }
    });
}

更新:

代码正在用于删除部分,但是在我刷新页面后,后端中的表不会更新自己如何使用Ajax进行重新加载?

2 个答案:

答案 0 :(得分:0)

如果您使用的是Ajax,则无需刷新页面。您可以删除正在删除的确切行,而不是刷新。如果您尝试刷新页面,则不会使用Ajax,您只需发布帖子或获取将自动重新加载页面的请求

尝试这样的事情

<tr id='row<?php echo $property['ID']; ?>'>.........</tr>
function delete_article(id){
    // ajax delete data in database
    $.ajax({
        url : "http://localhost/eaglefruit/news/delete" + id,
        type: "POST",
        dataType: "JSON",
        success: function(data){
              $("#row"+id).remove();
        }
    });
}

答案 1 :(得分:0)

我会做的是以下

设置要从AJAX返回的标志,&#34; 0&#34;或&#34; 1&#34;例如。我知道对于Java Servlets来说,你必须检查PHP(对不起):

PrintWriter out = response.getWriter();
out.print(//1 or 0 in case everything went according to plan);

这是棘手的部分......

为每个tr分配一个id,例如:

<table>
   <thead>
     <tr>
       <th>ID</th>
       <th>Name</th>
       <th>Last Name</th>
     </tr>
  </thead>
  <tbody>
     <tr id="00001">
       <td>0001</td>
       <td>John</td>
       <td>Smith</td>
    </tr>
    <tr id="00002">
       <td>0002</td>
       <td>Jane</td>
       <td>Smith</td>
    </tr>
    <tr id="00003">
       <td>0003</td>
       <td>Baby</td>
       <td>Smith</td>
    </tr>
   </tbody>
</table>

在您的AJAX请求中,在响应成功方法中验证您的&#34;数据&#34;变量如:

if(data=="1"){
   $(#id).remove();
   //Where id I´m hopping is the same ID from **delete_article(id)**
}else{
  alert("Something is wrong");
}

请记住,要使其工作,您必须添加JQuery

祝你好运:

:)