3

私のページには、ユーザーが値を入力するための入力がいくつかあります。次に、すべての値を取得してサーバーに送信します。これで値を取得でき、以下のように表示できます。

Cylinder: 0.00    Sphere: 0.00    Quantity:1
Cylinder: -0.25    Sphere: 0.00    Quantity:2
Cylinder: -0.50    Sphere: 0.00    Quantity:33
Cylinder: -0.75    Sphere: 0.00    Quantity:2
Cylinder: -1.00    Sphere: 0.00    Quantity:2
Cylinder: -1.25    Sphere: 0.00    Quantity:33
Cylinder: -1.50    Sphere: 0.00    Quantity:4
Cylinder: -1.75    Sphere: 0.00    Quantity:5
Cylinder: -2.00    Sphere: 0.00    Quantity:4

しかし、私はそれらを保存のために行動に移す方法を知りません。私はmvcを使用しています。

ビューでは、次の JavaScript を記述します。

 var orderModel={};
 $(".bulkOrderNumericInput").each(function (index,element) {
        if ($(this).val().length!=0) {
            orderModel[i]={Cylinder:$(this).attr('valuex'),Sphere:$(this).attr('valuey'),Quantity:$(this).val()};
            i++;
        }
    });

誰でも私を助けることができますか?

4

2 に答える 2

4
 var orderModel = [];
//loop all the inputs in the page to get values, let's say you give all the inputs a class named'.orderinput'
$('#checkout').click(function(){
    $(".orderinput").each(function(){
    orderModel.push({Cylinder:$(this).val(),Sphere:blah,Quantity:blah,...);
    });
  });

//not all values are sotred into the orderModel, the do the post
$.ajax({
        url: 'your url',
        data:JSON.stringify(orderModel),
        type: 'POST',
        contentType: 'application/json; charset=utf-8',//this is important!!
        success : function(msg) {
            //blah..
        },
        error: function (xhr, ajaxOptions, thrownError) {
            //blah...
        }
    });
于 2013-02-25T08:24:09.997 に答える
2

このSOの質問で見つけた次のチュートリアルを使用して、この回答を書きました。このコードはテストされていませんが、順調に進むことを願っています。ご不明な点がございましたら、お気軽にお問い合わせください。

配列に JavaScriptを入力した後orderModelは、そのデータを jquery でポストするだけです。jquery オブジェクトには、これを簡単に実行できるajaxメソッド ( documentation ) が含まれています。JavaScriptコードの最後に配置された以下のコードは、トリックを行う必要があります:

$.ajax({
    type: 'POST',
    traditional: true,
    data: { models: orderModel }
});

この ajax 呼び出しは、表示されたページの URL に対して実行されることに注意してください。別の URL を選択するには、次のコードを使用します。

$.ajax(URL, { /* same data as above */ });

サーバー側では、チュートリアルに従って、modelsプロパティを保持するクラス定義が必要です。そのプロパティには、スクリプトで収集した JavaScript 配列データが入力されます。

メリークリスマス!

于 2012-12-25T08:04:32.570 に答える