0

我对 Zend Ajax 有一些问题。那是我的js代码:

function deleteNewsCategory(cId) {
var conf = confirm("Are you sure you want to delete the item?");

if(conf) {
    $.ajax({
        dataType: 'json',
        url: '/ajax/deletenewscategory',
        type: 'POST',
        data: {
            cId : cId
        },

        success: function (response) {
            alert(response);
        }
    });
}

}

那是我的 AjaxController:

public function init() {
    $this->_helper->ajaxContext->addActionContext('deletenewscategory', 'json')
            ->initContext();
}

public function deletenewscategoryAction() {
    if ($this->getRequest()->isPost()) {
        echo $this->_request->getPost('cId');
    }
}

我在提交按钮中添加了 deleteNewsCategory 功能,但是当我单击此按钮并出现确认消息并单击确定时,我什么也没看到?

4

1 回答 1

1

要么存在阻止提交发生的 Javascript 错误,要么响应不包含 JSON 数据,因此您的处理程序没有被调用。

ajax.phtml由于您使用的是 Ajax 上下文,您是否有带有后缀的视图脚本?

查看是否exit;在您的 echo 语句之后添加deletenewscategoryAction结果中的警报显示。

接下来是使用 Firebug 或 Firefox 的 livehttpheaders 或 Wireshark 来嗅探 HTTP 请求和响应以查看您返回的数据。

编辑:由于您收到 404 错误,请尝试:

url: '<?php echo $this->url(array('controller' => 'ajax',
                                  'action'     => 'deletenewscategory'),
                            null, true) ?>',

通过使用url()帮助程序,它将根据您的路由和基本路径构造一个 URL。

您的警报未显示的原因是因为 404 包含 HTML 而不是有效的 JSON,jQuery 没有调用您的成功处理程序。

于 2012-08-12T18:48:45.950 回答