javascript - ajax删除后刷新模板

标签 javascript ajax django google-app-engine templates

我有一个包含一些待办任务的表,我希望能够通过ajax删除任务,但我不知道删除后如何刷新我的表。

我已经能够删除任务,但在刷新页面之前我看不到该任务被删除。我正在向模板发送一些 foo 消息,我可以看到它,但我不知道如何再次发送查询结果并将一堆任务发送到模板并在表中显示它们

这是我的代码

Controller

    class Delete(webapp2.RequestHandler):
    def get(self):
    string_id = self.request.get("task")[12:28]
    task_key = ndb.Key('Task', int(string_id))
    task_key.delete()

    session = Session(self.request)
    user = User.get_by_id(session.email)
    userkey=user.key
    tasks=Task.query(Task.author==userkey)

    response_data = {'message' : 'foo'}

    self.response.out.headers['Content-Type'] = 'text/json'
    self.response.out.write(json.dumps(response_data))
    return

    class MainPage(webapp2.RequestHandler):
    @login_required
    def get(self):
    session = Session(self.request)
    user = User.get_by_id(session.email)
    userkey=user.key
    tasks=Task.query(Task.author==userkey)

    template_values = {
        'tasks': tasks
    }

    template = 'index.html'
    render_template(self,template,template_values)

JavaScript

 $(document).ready(function(){
 $('.delete-button').click(function() {
   $.ajax({
  type: 'GET',
  url: '/delete',
  data: $('#delete-form').serialize(),
  success: showData,
  error: null
});
return false;
}); 

})

function showData(data){
    $('#prueba').html(data.message)
 }

模板

 <table >
    <thead>
    <tr>
      <th>Nombre</th>
      <th>Descripcion</th>
      <th>Fecha</th>
      <th>Status</th>
      <th></th>
    </tr>
    </thead>
    <tbody>
    {% for task in tasks %}
    <tr>
      <td>{{ task.name }}</td>
      <td>{{ task.description }}</td>
      <td>{{ task.date|datetime }}</td>
      <td>{{ task.status }}</td>
      <td> 
        <form action="#" id="delete-form">
        <input type="hidden" name="task"  value="{{task.key}}">
        <input type="submit" value="Eliminar" class="delete-button">
        </form> 
      </td>
    </tr>
    {% endfor %}
    <tbody>
  </table> 
   <div id="prueba"></div>

最佳答案

只需刷新页面或在 ajax 中删除后创建一个 Jquery 函数,它将动态地从您的 View 中删除该对象。这只是您的两个选择;)

例如:

$.ajax({
  type: 'GET',
  url: '/delete',
  data: $('#delete-form').serialize(),
  success: showData,
  error: null
}, function() {
                 Your removing function 
                });

在删除函数中,您只需找到要删除的对象并将其删除,例如:

$(#ObjectName).parents("li:first").remove();

关于javascript - ajax删除后刷新模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20564699/

相关文章:

python - Windows 上的 mysql 连接器/mysqlclient 和 django 问题

django - Postgresql/Django 问题。密码无效/数据库未被访问?

javascript - 通过 Play Framework 缩小客户端

javascript - JQuery AJAX 无法解析 PHP PDO 方法的响应

javascript - 使用 jQuery/Ajax 通过下拉菜单过滤 PHP SELECT 查询

CSS ajax 搜索框样式

django - 如何重命名 Django 应用程序并将数据从一个应用程序迁移到另一个应用程序

javascript - 如何定义要为 Django 表单/小部件/管理员呈现的内联 Javascript?

javascript - 将字典数组传递给 Javascript

javascript - 使用 JavaScript/HTML 防止手机在移动网络浏览器中休眠的技巧?