2010-03-15 17 views
2

上午试图验证使用AJAX调用在JQuery中连载我的JSON输出问题

$("#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); 

但是从萤火虫我的输出如下

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"} 

如何实现这种类型的序列化?

回答

0

jQuery serialize函数总是返回一个URL编码的字符串。取而代之的是,使用serializeArray以及一些阵列。

+0

我现在使用的是serializedArray,虽然输出现在不同,并且接近我期望它与预期输出不相似的地方,所以Zend_Json :: decode可以很好地工作。 也许我在服务器端的解码需要调整... – davykiash 2010-03-15 14:23:51