Zend Framework JQuery отправить форму без обновления страницы - PullRequest
2 голосов
/ 20 декабря 2011

бьется в голове уже 2 дня. Я новичок в Zend, но не в jquery. Я пытаюсь опубликовать форму, используя Zend Framework, но все, что я получаю, - это обновление страницы, как при обычном запросе на публикацию. Я использую Jquery 1.4.2. Я использовал Firebug Lite для Chrome, чтобы увидеть любой вывод, но ничего. У кого-нибудь есть идеи?

Приветствия Скотта.

Javascript

 $(function() {

    $("#saveButton").click(function () { 

    var name = $('#name').val(),
        email = $('#email').val(),      
        phone = $('#phone').val(),
        fb = $('#fb').val(),
        tw = $('#tw').val(),
        postcode = $('#postcode').val();

    $.ajax({
        type: 'POST',
        dataType: 'json',
        url: 'http://booglam.local/client/add',
        async: false,
        data: { name: name, email: email, phone: phone, fb: fb, tw: tw, postcode: postcode },
        success: function(json) {
            console.log(json.id + ' ' + json.details);
        }
    });
  });
 });

Основной контроллер PHP -

public function addAction()
{
    $this->_helper->layout->disableLayout(); 
    $this->_helper->viewRenderer->setNoRender(TRUE);

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

1 Ответ

4 голосов
/ 20 декабря 2011

Попробуйте вернуть false в конце вашей функции, чтобы предотвратить начало процесса регулярной отправки.

$(function() {

$("#saveButton").click(function () { 

var name = $('#name').val(),
    email = $('#email').val(),      
    phone = $('#phone').val(),
    fb = $('#fb').val(),
    tw = $('#tw').val(),
    postcode = $('#postcode').val();

$.ajax({
    type: 'POST',
    dataType: 'json',
    url: 'http://booglam.local/client/add',
    async: false,
    data: { name: name, email: email, phone: phone, fb: fb, tw: tw, postcode: postcode },
    success: function(json) {
        console.log(json.id + ' ' + json.details);
    }
});

 return false;
  });
});
...