2014-12-31 45 views
3

我是基本的ajax并使用显示结果(表单和自定义值(如Json))ajax。我的代码:Ajax数组值显示错误

var obj = {"employees":[ 
    {"firstName":"John", "lastName":"Doe"}, 
    {"firstName":"Anna", "lastName":"Smith"}, 
    {"firstName":"Peter", "lastName":"Jones"} 
]}; 
var data = $("#userForm").serialize() + "&jsonval=" + obj;     
$.ajax({ 
        datatype : "json", 
        type: 'POST', 
        url: 'all.php', 
        data: data, 
        }) 

我的结果:

Array 
(
    [firstname] => frtr 
    [lastname] => dfgfdg 
    [email] => [email protected] 
    [num] => 2323232323 
    [num1] => 34334 
    [num2] => 2342 
    [num3] => 2432 
    [submit] => Submit 
    [jsonval] => [object Object] 
) 

Jsonval -display导致的翻译:.plz帮助显示结果的所有员工(名和姓)。 感谢您的功能帮助并纠正了我的错误。

回答

3

因为您正在尝试后JSON对象在后的字符串,所以你需要改变的对象转换为字符串

变化

var data = $("#userForm").serialize() + "&jsonval=" + obj; 

var data = $("#userForm").serialize() + "&jsonval=" + JSON.stringify(obj); 

现在你会得到JSON内容转换为服务器上的字符串,所以解码jsonval服务器端的字段值

+0

感谢。 – Kannan

1

现在obj是对象其换算为字符串与默认的toString这在对象的情况下是“[对象对象]”。相反,你应该用JSON.stringify其转换成JSON字符串它的正常工作这

JSON.stringify(obj)