2017-08-04 2 views
-1

私は2つのJSONオブジェクト配列を扱う必要があります。両方の配列を同じループに入れて、& &の区切り文字で区切るか、代わりにそれぞれの内側に配置することは可能ですか?AJAXで各ループに2つの配列を配置できますか?

同じループで2つの配列を操作する必要がありますが、どうすれば可能ですか?

これはPHPのページから私のJSONです:

ここ
function loadBlocSite() { 
    //Création d'un tableau 
    $currentArrayData = array(); 

    //Remplissage du tableau  
    $currentArrayData['configAlm'] = array(
          array('blocName' => 'blockAlarmeContent',  'blocLVTwoName' => 'boxLV2Content', 'blocHeader' => 'ALARME',  'label' => 'Criticité',   'id' => 'almCrit',   'ico' => '', 'refreshFreq' => '2', 'TNT' => '2', 'FM' => '2'), 
          array('blocName' => 'blockAlarmeContent', 'blocLVTwoName' => 'boxLV2Content', 'blocHeader' => 'ALARME', 'label' => 'Sans supervision', 'id' => 'almSansSup',  'ico' => '', 'refreshFreq' => '2', 'TNT' => '2', 'FM' => '2'), 
          array('blocName' => 'blockAlarmeContent', 'blocLVTwoName' => 'boxLV2Content', 'blocHeader' => 'ALARME', 'label' => 'Non nominale',  'id' => 'almNonNom',  'ico' => '', 'refreshFreq' => '2', 'TNT' => '2', 'FM' => '2') 
    ); 
    $currentArrayData['configSite'] = array(
          array('blocName' => 'blockSitesContent', 'blocLVTwoName' => 'boxLV2Content', 'blocHeader' => 'ALARME', 'label' => '-3dB',   'id' => 'steMoins3db',  'ico' => '', 'refreshFreq' => '2', 'TNT' => '4', 'FM' => '1'), 
          array('blocName' => 'blockSitesContent', 'blocLVTwoName' => 'boxLV2Content', 'blocHeader' => 'ALARME', 'label' => 'Rx',    'id' => 'steRx',   'ico' => '', 'refreshFreq' => '2', 'TNT' => '4', 'FM' => '1'), 
          array('blocName' => 'blockSitesContent', 'blocLVTwoName' => 'boxLV2Content', 'blocHeader' => 'ALARME', 'label' => 'Perte HF',  'id' => 'stePerteHF',  'ico' => '', 'refreshFreq' => '2', 'TNT' => '4', 'FM' => '1'), 
          array('blocName' => 'blockSitesContent', 'blocLVTwoName' => 'boxLV2Content', 'blocHeader' => 'ALARME', 'label' => 'Décrochage HS', 'id' => 'steDecrochHS', 'ico' => '', 'refreshFreq' => '2', 'TNT' => '4', 'FM' => '1'), 
          // array (
          // array('blocName' => 'blockSitesContent', 'label' => 'GE Actif En cours', 'id' => 'steGEEnCours',  'ico' => '', 'refreshFreq' => '2', 'val' => '2'), 
          // array('blocName' => 'blockSitesContent', 'label' => 'GE Actif -10 jrs', 'id' => 'steGEMoins10jrs',  'ico' => '', 'refreshFreq' => '2', 'val' => '2') 
          //); 
    ); 
    return $currentArrayData; 
} 

私のコードです:あなたは、あなたのVARSを上書きしようとしている

$.ajax({ 
    url: 'Pages/index.php', //ou il y a le traitement json 
    type: 'get', 
    dataType: 'json', 
    data: 'action=loadBlocSite', 
    success:function(data){ 

     $.each(arrayOfData['configAlm'], function(currentIdx, currentValue){ 
      $.each(arrayOfData['configsite'], function(currentIdx, currentValue){ 
       if(currentValue.id == "almCrit"){ 
        $("#almCrit").click(function() { 
         $('#mainViewContainer').animate({'left': '-30rem'}, 250, function(){ 
          $('#boxLV2Content').empty(); 
          var criticiteContent = ''; 
          criticiteContent += '<div class="tableHeader">'; 
          criticiteContent += '<div class="tableCell_title">TNT</div>'; 
          criticiteContent += '<div class="tableCell_title">FM</div>'; 
          criticiteContent += '</div>'; 
          criticiteContent += '<div class="lineBloc">'; 
          criticiteContent += '<img class="lineBlocIco" src="'+ currentValue.ico +'">'; 
          criticiteContent += '<div class="lineBlocTitle">'+ currentValue.label +'</div>'; 
          criticiteContent += '<div class="lineBlocValue">'+ currentValue.TNT +'</div>'; 
          criticiteContent += '<div class="lineBlocValue">'+ currentValue.FM +'</div>'; 
          criticiteContent += '</div>'; 
          console.log(currentValue.blocName); 
          $("#" + currentValue.blocLVTwoName).append(criticiteContent); 
         }); 
        }); 
       } else return 'this is not almCrit Id'; 
      }); 
     }); 
    } 
}); 
+0

は限りちょうど両方の配列で行うことができることをやって両方の配列の同じインデックスにあるとき、値は一緒に属しますか?これらの2つの配列がどのように接続されているかは実際に説明されておらず、内側のループで宣言された 'currentValue'しか見えません。外側のループのために同じことが何回も繰り返されます。例えば、 'ico'は最初または2番目の配列のオブジェクトのプロパティですか?その入力にサンプル入力と希望出力を入力してください。 – trincot

+0

ここでajaxはどこですか? – Hitmands

+0

@Hitmands私はちょうどajaxの呼び出しのために私のポスト – Zee

答えて

1

..あなたは

にコードを変更する必要があります
$.each(arrayOfData['configAlm'], function(currentIdx, currentValue){ 
    $.each(arrayOfData['configsite'], function(_currentIdx, _currentValue){... 

最初のサイクルを繰り返すたびに2番目のアレイをループすることに注意してください。

0

はいネストされた各ループを使用することは可能ですが、異なるパラメータ名を使用する必要があります。そうしないと、内側ループが外側ループを上書きします。これは、外側のオブジェクト内の各要素のための内部オブジェクトを反復処理しますので、私はそれはあなたが探している動作ですわからないんだけど、あなたはこの

​​
+0

私のコードを変更しましたが、これは動作しません – Zee

+0

ここでの変更を反映するためにあなたのループの内部部分を変更しましたか? – CumminUp07

+0

はい私はあなたが私のコードで言及した通りに正確に変更しますが、ここでは質問には言及しません。私には何のエラーも与えません。 – Zee

関連する問題