私はフォーミュラで道場を使い始めました。正常に動作しますが、Selectboxesに問題があります。この選択ボックスのストアは、ready関数の関数内に作成されます。その後、set('value'、data);を作成しました。サーバーへのAjax呼び出しから取得したデータを使用します。この選択ボックスの値は変更されません。コンソールで同じコードをテストした場合、それも機能しません。別の選択ボックスを作成しましたが、同じ関数で他の選択ボックスの値が変更されます。
ここで、コードは選択ボックスからコードを作成します。
var shop_id = dijit.byId('shopSelect').get('value');
var person_count = document.getElementById("person_count").value;
var produkt_count = document.getElementById("person"+person_count+"_produkt_count").value;
xhr.get({
url: "./ajax_getAlterskategorie.php?shop_id="+shop_id,
handleAs: "json"
}).then(function(data){
var tmp = new Memory({ data: data.selectbox });
var os = new ObjectStore({ objectStore: tmp });
var s = new Select({
store: os,
name: "person"+person_count+"_alter",
style: {width: "200px"} ,
onChange: function ( alterskategorie)
{
if( dijit.byId('shopSelect'))
{
var shop_id = dijit.byId('shopSelect').get('value');
}
else
{
var shop_id = 0;
}
xhr.get({
url: "./ajax_getProdukt.php?alterskat="+alterskategorie+"&getpkat=1&shop_id="+shop_id,
handleAs: "json"
}).then(function(data){
var produkt_count = document.getElementById("person"+person_count+"_produkt_count").value;
var tmp = new Memory({ data: data });
var os = new ObjectStore({ objectStore: tmp });
for( var i = 1; i <= produkt_count; i++)
{
dijit.byId( 'person'+person_count+'_pkat'+i).setStore(os);
}
});
}
}, "person"+person_count+"_alter");
s.startup();
});
値を変更するためのコードは次のとおりです。
xhr.get({
url: "./ajax_getOrder.php?order_id="+document.getElementById("id").value,
handleAs: "json"
}).then(function(data){
for( i = 1; i <= data.person_count; i++)
{
dijit.byId('person'+i+'_alter').set('value', '"+data["person"][i]["alter"]+"');
}
});