0

私はフォーミュラで道場を使い始めました。正常に動作しますが、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"]+"');
  }
});
4

1 に答える 1

0
dijit.byId('person'+i+'_alter').set('value', '"+data["person"][i]["alter"]+"');

なぜ「+」と「+」を使用するのか、それだけではありません。

dijit.byId('person'+i+'_alter').set('value', data["person"][i]["alter"]);

data ["person"] [i] ["alter"]で設定しようとしているデータ(キー)が、選択ウィジェットですでに使用可能になっていることを確認してください。

注意:選択オプションのキーとして整数(1,2,3。。:))を使用している場合は注意してください。少し前はバグがありました。

于 2012-10-22T20:14:37.883 に答える