首先,我是 php 和 javascript 的新手
我有一个网络表单,用户可以在其中添加多个联系人并发送到服务器。
由于某些原因,我不能使用普通的 html 元素来存储值,所以我使用数组来存储值。
//init array
var contacts = new Array(); //contact array
var tempArray = new Array(); //temp array to store current contacts
//getting the contact info and setting to a temp array
tempArray = {
name:"username",
age:12,
sex:false
};
//push the content to the `contacts` array
contacts.push(tempArray);
我在数组中添加了许多联系人contacts
,现在我需要将数组提交到服务器。
问题
我正在使用 Codeignitor 和 Malsup FORM 插件。
根据malsup,我可以像这样配置数据选项
var options = {
dataType:'json', //type of data
data:[contactArray:contacts], //additional parm
};
在ajaxSubmit
选项上,我可以将此选项作为参数。
当我这样做时,我收到以下错误
uncaught exception: [Exception... "Component returned failure code: 0x80460001 (NS_ERROR_CANNOT_CONVERT_DATA) [nsIDOMFormData.append]" nsresult: "0x80460001 (NS_ERROR_CANNOT_CONVERT_DATA)" location: "JS frame :: /js/form.js :: fileUploadXhr :: line 224" data: no]
temp/jquery.min.js
Line 4
它适用$.POST
于 jQuery。
所以我尝试JSON.stingify()
将数据转换为字符串。
但是在服务器上我变得像这样
'contactArray' => string '[{"name":"username","sex":"12","sex":"false"}]'
如果我使用了,json_decode
那么我不能使用表单验证。
我想在 CODEIGNITOR 中使用表单验证库。
CI 支持元素数组的验证。
所以
如果我得到类似的东西,name[],age[],sex[]
那么我可以轻松验证。
请帮我解决问题或给我建议。
谢谢你。