Zend и Jquery (Ajax Post) - PullRequest
       11

Zend и Jquery (Ajax Post)

8 голосов
/ 30 декабря 2010

Я использую Zend Framework, я хотел бы получить данные POST, используя пост Jquery ajax для сохранения без обновления страницы.

//submit.js

$(function() {

    $('#buttonSaveDetails').click(function (){
        var details = $('textarea#details').val();
        var id = $('#task_id').val();
        $.ajax({
            type: 'POST',
            url: 'http://localhost/myproject/public/module/save',
            async: false,
            data: 'id=' + id + '&details=' + details,
            success: function(responseText) {
                //alert(responseText)
                console.log(responseText);
            }

        });
    });
});

На моем контроллере я просто не знаю, как получить данные POST из ajax.

public function saveAction() 
{

    $data = $this->_request->getPost();
    echo $id = $data['id'];
    echo $details = $data['details'];
    //this wont work;
}

Заранее спасибо.

Ответы [ 2 ]

13 голосов
/ 30 декабря 2010

Установите для параметра $.ajax 'dataType значение' json 'и измените обратный вызов успеха для чтения из полученного JSON:

$('#buttonSaveDetails').click(function (){
    var details = $('textarea#details').val();
    var id = $('#task_id').val();
    $.ajax({
            type: 'POST',
            dataType: 'json',
            url: 'http://localhost/myproject/public/module/save',
            async: false,

            // you can use an object here
            data: { id: id, details: details },
            success: function(json) {
                console.log(json.id + ' ' + json.details);
            }
    });

    // you might need to do this, to prevent anchors from following
    // or form controls from submitting
    return false;
});

И с вашего контроллера отправьте данные следующим образом:

$data = $this->_request->getPost();
echo Zend_Json::encode(array('id' => $data['id'], 'details' => $data['details']));

В качестве точки закрытия убедитесь, что автоматический рендеринг представления отключен, поэтому единственным выходом, возвращающимся к клиенту, является объект JSON.

2 голосов
/ 27 сентября 2012

Самый простой способ получить это:

$details=$this->getRequest()->getPost('details');

$id= $this->getRequest()->getPost('id');

Надеюсь, это сработает для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...