1

这是我目前正在使用的代码,但无法理解如何插入 ajax 代码

我在这个网站上阅读了更多帖子,但我仍然无法理解我是如何插入 ajax 代码的

<?php

class FacController extends Zend_Controller_Action
{

    public function init()
    {
        /* Initialize action controller here */
    }

    public function deleteAction()
    {
        if ($this->getRequest()->isPost()) {
        $del = $this->getRequest()->getPost('del');
        if ($del == 'Yes') {
        $id = $this->getRequest()->getPost('id');
        $details = new Application_Model_DbTable_Details();
        $details->deleteDetails($id);
        }
        $this->_helper->redirector('index');
        } else {
        $id = $this->_getParam('id', 0);
        $details = new Application_Model_DbTable_Details();
        $this->view->details = $details->getDetails($id);
        }
    }

}
4

1 回答 1

1

让我们假设您的索引操作显示了您要删除的内容的列表。

您通过 ajax 进行删除的方式非常简单。

  1. 编写删除操作,返回删除状态
  2. 通过 ajax 调用它,并做出适当的响应。

现在这一切看起来如何:

索引.phtml

此视图应包含类似于以下 jQuery 代码的内容:

 $("#button").click(function(){
    var menuId = $("ul.nav").first().attr("id");
    var request = $.ajax({
      url: "/index/delete",
      type: "POST",
      data: {id : menuId},
      dataType: "html"
    });

    request.done(function(msg) {
      $("#log").html( msg );
    });

    request.fail(function(jqXHR, textStatus) {
      alert( "Request failed: " + textStatus );
    });
});

索引控制器:删除操作()

public function deleteAction()
    {
        $this->_helper->layout->disableLayout(); //This disables the layout
        $this->_helper->viewRenderer->setNoRender(TRUE); //This disables need for delete.phtml
        if ($this->getRequest()->isPost()) {
        $id = $this->getRequest()->getPost('id');
        $details = new Application_Model_DbTable_Details();
        $status=$details->deleteDetails($id); //Lets add a status check to know if we have successfully deleted something
        if($status){
            echo json_encode(true);
        }
        else{
            echo json_encode(false);
        }
    }

即使我没有对这段代码进行广泛的测试,这应该会让你走上正轨。

于 2013-08-22T13:06:27.607 回答