私のコントローラーでは、ビューに渡すスライダー html を動的に作成しています。そのため、データベースからのクエリに応じて、複数のスライダー (1 つのスライダー、20、またはその間の任意の数) が作成されます)。
各スライダーをデータベース内の ID と価格に関連付ける必要があります。
ExtraPrices 配列は、各スライダーに関連付ける価格を保持します。ExtraIDs 配列は、データベース内の各追加アイテムの ID を保持します。
各スライダーの設定値を保持する JSON 文字列を作成し、ExtraPrice と ExtraID も取得して、JSON 文字列をコードに送り返すことができるようにします。
HTML 出力は次のとおりです。
<script>
var ExtraPrices = [20.00,30.00,50.00];
var ExtraIDs = [13,19,25];
</script>
<label for="slider1">item 1</label>
<input type="range" name="slider1" id="slider1" min="0" max="10" value="0">
<label for="slider2">item 2</label>
<input type="range" name="slider2" id="slider2" min="0" max="10" value="0">
<label for="slider3">item 3</label>
<input type="range" name="slider3" id="slider3" min="0" max="10" value="0">
2 つの配列をループして、それらを相対的なスライダー値と結び付ける必要があります。疑似コード:
var count = 0;
var strJSon = "["
"RoomName": null,";
$.each('#slider').function(){
strJSon+= "{"
strJSon+= "\"ID\": " + ExtraIDs[count] + ",";
strJSon+= "\"Price\": " + ExtraPrices[count] + ",";
strJSon+= "\"Number\": " + SliderX.slider("option", "value");
strJSon+= "},"
}
//Remove last comma
strJSon = strJSon.Substring(0, strJSon.LastIndexOf(","));
strJSon+= "]"
したがって、次のような strJSon になります。
[{
"ID":13,"Price":20.00,"Number":4,
"ID":19,"Price":20.00,"Number":2,
"ID":25,"Price":20.00,"Number":5
}]
上記の私の Javascript コードを使用して、各スライダーをループし、上記の JSON 文字列を作成するのを手伝ってくれる人はいますか?
ありがとうございました、
マーク