まず第一に、私はphpとjavascriptに不慣れです
ユーザーがサーバーに送信する複数の連絡先を追加できるWebフォームがあります。
いくつかの理由により、通常の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とMalsupFORMプラグインを使用しています。
malsupによると、私はこのようにデータオプションを設定できます
var options = {
dataType:'json', //type of data
data:[contactArray:contacts], //additional parm
};
そしてajaxSubmit
オプションで私はこのオプションをparmとして与えることができます。
これを行うと、次のエラーが発生します
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
それはjQueryで$.POST
動作します。
だから私JSON.stingify()
はデータを文字列に変換しようとしました。
しかし、サーバー上では私はこのようになっています
'contactArray' => string '[{"name":"username","sex":"12","sex":"false"}]'
使用したjson_decode
場合、フォーム検証を使用できません。
CODEIGNITORのFORMVALIDATIONLIBRARYを使用したい。
CIは、要素の配列の検証をサポートします。
それで
私がそのようなものを手に入れればname[],age[],sex[]
、私は簡単に検証することができます。
問題を解決するのを手伝ってください、または私に提案をしてください。
ありがとうございました。