2012-03-21 23 views
1

ajax/jsonからデータベースに呼び出してデータを動的に表示する状況があります。データはユーザによって操作され、画面上にli項目として表示されます。データはddlによってトリガされ、動的です(ddlの選択に基づいて表示されるさまざまな項目があることを意味します)。私は各項目の値とIDを取得する必要があります。値をシリアル化してdbに渡したいのですが、問題が発生しています。助けてください。 JavascriptがGETINFOに呼び出されhtml要素を反復処理し、javascriptを使用してIDと値の値を取得する方法

for (var i = 0; i < items.length; i++) { 
          form += '<li><input class="number" name="product-item_' + items[i].RiskID + '" id="product-item_' + items[i].RiskID + '" type="text" value="' + items[i].DefaultFee + '" /> ' + items[i].Description + '</li>'; 

         } 

とクライアント側での変更を保存します:

var getInfo = function() { 
        return { 
         ProductID: $('#ctl00_ContentPlaceHolder1_Manage1_ddlProducts').val(), 
         ProductDescription: $('#ctl00_ContentPlaceHolder1_Manage1_ddlProducts option:selected').text(), 
         ProductItems: $("#ProductItems").html(), 
         //The code below is blowing up: 
         ItemValue: $("#li").each(function (n) { $(this).attr('value'); }) 
         //This will also have to be done 
         ItemID: $("#li").each(function (n) { var currId = $(this).attr('id'); var removeTxt = "product-item_"; var currID = currId.replace(removeTxt,""); }) 
        }; 
       }; 

私のアプローチは欠陥があるかもしれ

Javascriptが最初にデータを取り込む/ HTMLを構築します。私は自分の現在のメソッドを変更するために開いています。私の希望シリアライズされた結果の一例は以下のとおりです。

[{"ProductID": "Xa","ItemID":"Ya1","ItemValue":"Za1","ItemID":"Ya2","ItemValue":"Za2"}, 
{"ProductID": "Xb","ItemID":"Yb1","ItemValue":"Zb1"}]. 

(第Xa、雅、ザなどが値を表す。)

感謝を事前にあなたの助けのために。

+0

knockoutjsを使用できるようです。 jsonコールからデータを読み込んで保存するチュートリアルをチェックしてください:http://learn.knockoutjs.com/#/?tutorial=loadingsaving – nickvane

答えて

1

このコード:私はあなたが期待していると考えるよう

ItemValue: $("#li").each(function (n) { $(this).attr('value'); }) 

はない配列、jQueryオブジェクトを返します。代わりに$.mapを試してみてください。それがマッピングされていたら

ItemValue: $.map($("#li"),function(el,n) { return $(this).attr('value'); }) 

また、あなたは、単一のカンマ区切りの文字列に配列を.join(',')することができます。

ItemIDの変換関数の変換は、読者の練習として残されています。

関連する問題