1

那是我的功能:

function deleteAutoAd(id, title) {
    alert(title);                                                                         
    $.ajax({
        dataType: 'json',
        url: '/ajax/deleteautoad',
        type: 'POST',
        data: {
            id : id,
            title : title
        },
        success: function(data) {
            alert(data);
        }
    });
}

在此功能中,当我尝试警报(标题)并弹出“这是标题”(因为标题=“这是标题”)时。但在 ajax/deleteautoad 我试试这个:

public function deleteautoadAction() {
    if ($this->getRequest()->isPost()) {
        echo $param1 = $this->_request->getParam('id');
        echo $param2 = $this->_request->getParam('title');
    }
}

Echo param1 显示 5,但 echo param2 什么也不显示。

4

4 回答 4

2

我认为你应该尝试:

function deleteAutoAd(id, title) {
    alert(title);                                                                         
    $.ajax({
        dataType: 'json',
        url: '/ajax/deleteautoad',
        type: 'POST',
        data: {
            'id' : id, // Note the quotes
            'title' : title // Note the quotes
        },
        success: function(data) {
            alert(data);
        }
    });
}

问候

咪咪

于 2012-08-29T08:49:41.773 回答
1

我同意楼上的回答

另外,对于我的申请,我还必须发布完整的网址。所以你可能想试试

var root = location.protocol + '//' + location.host;

然后在你的网址上

url: root+'/ajax/deleteautoad',
于 2012-08-29T09:26:47.753 回答
1

您应该从控制器返回带有Success状态的有效 JSON。

public function deleteautoadAction() {
    if ($this->getRequest()->isPost()) {
        $x->Status = 'Success';
        $x->Message = $this->_getParam('id') . $this->_getParam('title');
        $this->_helper->json($x);
    }
}

你也应该改变你的alert陈述

function deleteAutoAd(id, title) {
    $.ajax({
        dataType: 'json',
        url: '/ajax/deleteautoad',
        type: 'POST',
        data: {
            id : id,
            title : title
        },
        success: function(data) {
            alert(data.Message);
        }
    });
}
于 2012-08-29T10:26:46.800 回答
0

从 OP 问题转移到 CW 答案:

我通过删除解决了这个问题:dataType: 'json'

于 2012-10-12T15:32:18.937 回答