jQuery AJAXを使用してJSONとして送信したいフォームがあります。そのため、プログラミング言語のネイティブメソッド(OpenEdgeを使用して、サーバー側の一時テーブルに読み込むことができます。 READ-JSON)。私のフォームが生成する必要がJSONの例は:フォームからカスタムJSON文字列を作成する
{"ttOrder": [
{
"cProduct": "prod01",
"iQty": 123
},
{
"cProduct": "prod02",
"iQty": 456
}
]}
私の形態は、例えば、製品情報、製品コード、記述等及び数量入力フィールドの行を含むテーブルで構成されています
<input id="prod01" name="prod01" value="0">
スタックオーバーフローの周りに検索するから、私は、彼らが役立つかもしれないように私は、私は、フォームをシリアル化する必要があると思うと、見ての提案のカップルが見つかりました:
(function($){
$.fn.serializeJSON=function() {
var json = {};
jQuery.map($(this).serializeArray(), function(n, i){
json[n['name']] = n['value'];
});
return json;
};
})(jQuery);
var obj = {"ttOrder": [$('#prodform').serializeJSON() ]};
をそして$アヤックスコールで
{"ttOrder": [
{
"prod01": "123",
"prod02": "456"
}
]}
:しかし、これは次のようになります
...
data: JSON.stringify(obj),
...
を使用
私は上記のコードはすべて、入力値と値をキーとして&の値ペアで構成されたJSON文字列を作成していると思いますが、コードを変更して自分のものを取得する方法はありません必要とする。
私が達成しようとしているのは、配列の名前が常にttOrder(テンポラリテーブル名にマップされている)の配列を持つことです。オブジェクトの最初のエントリはプロダクトコードです(常にcProduct - 私の一時テーブルのフィールド名にマップする)、入力の名前の値で、オブジェクトの2番目のエントリは数量です(常にiQty - 私の一時テーブルのフィールド値に対応します)。
私が使用している間違った用語をお許しください。
ありがとうございました。
すばらしかったです。それはほとんど動作しますが、数量は '{" cProduct ":" 01 "、" iQty "ではなく、 ' {"cProduct": "01"、 "iQty": "1" 1} '。私はこれについて何かできることはありますか? –
n ['value']の周りにparseIntを追加すると、このトリックが実行されます。json ['iQty'] = parseInt(n ['value']); –
うん、それはそれをした、それは今完全に動作します。多くの感謝ブライアン! –