2014-08-31 55 views
0

檢查下面的代碼:捕獲變量傳遞給jQuery的腳本中的for循環

jQuery(document).ready(function($){ 
    jQuery(myAjax.idinfo).change(function() 
    { 
     $value = $(this).val(); 
     jQuery.ajax({ 
      type : 'post', 
      dataType : 'json', 
      url : myAjax.ajaxurl, 
      data : { 
       action: 'getuser', 
       value: $value, 
       //_nonce: myAjax.ajaxurl myAjax.nonce??????? 
      }, 

      complete: function(response){ 
       var parsed = JSON.parse(response.responseText) 
       var arr = []; 
       for(var x in parsed){ arr.push(parsed[x]);} 
       for(var i = 1; i<= myAjax.fieldcount; i++) 
       { 
        jQuery(myAjax.index + i).val(arr[i]); 
       } 
      } 
     }); 

    }); 
}); 

注意myAjax從PHP腳本傳遞,所以一切都可以通過myAjax。 現在在for循環中,我想使用myAjax.index1和index2等現在我該如何遞增索引?我已閱讀有關使用陣列的這個問題。但是,如果我將myAjax中的所有內容都推送到數組中,則數組不會只填充index1,index2等,但也包含其他值,因此這不是我正在尋找的。

回答

0

解決了,我通過2個陣列的jQuery腳本,這樣的:

wp_localize_script('ffd_js_script', 'myAjax', array(
     'ajaxurl' => admin_url('admin-ajax.php'), 
     'fieldcount' => $myoptionValue['fieldcount'], 
     'idinfo' => $myoptionValue['idinfo']) 
     ); 
    wp_localize_script('ffd_js_script', 'myIndexArray', $arguments); 

在jQuery的我推到一切另一個陣列(不知道這是必要的),然後我可以在陣列上進行迭代,像這樣:

var indexArray = []; 
       for(var y in myIndexArray){ indexArray.push(myIndexArray[y]);} 
       for(var i = 0; i<= myAjax.fieldcount-1; i++) 
       { 
        jQuery(indexArray[i]).val(arr[i+1]); 
       }