Сериализация моей проблемы вывода JSON в JQuery - PullRequest
2 голосов
/ 15 марта 2010

Я пытаюсь проверить мою форму, используя вызов AJAX

$("#button").click(function() {
    $.ajax({                    
        type: "POST",
        url: "<?php echo $this->baseUrl() ?>/expensetypes/async",
        data: 'fs=' + JSON.stringify($('#myform').serialize(true)),                 
        contentType: "application/json; charset=utf-8",
        dataType: "json"
        });
    });

На моем контроллере мой код выглядит следующим образом

//Map the form from the client-side call
        $myFormData = Zend_Json::decode($this->getRequest()->getParam("fs") 
                            ,Zend_Json::TYPE_ARRAY);

        $form = new Form_Expensetypes();
        $form->isValid($myFormData);

Однако из Firebug мой вывод выглядит следующим образом

fs="id=&expense_types_code=AAA&expense_types_desc=CCCC&expense_types_linkemail=XXXX&expense_types_budgetamount=22222&expense_types_budgetperiod=22222"

То, что я ожидаю, похоже на

fs{"expense_types_code":"AAA","expense_types_desc":"CCCC","expense_types_linkemail":"XXXX","expense_types_budgetamount":"22222"}

Как мне добиться этого типа сериализации?

1 Ответ

0 голосов
/ 15 марта 2010

Функция jQuery serialize всегда возвращает строку в кодировке URL. Вместо этого используйте serializeArray с некоторыми изменениями массива.

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