检查以下代码:
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等,还会填充其他值,所以这不是我想要的。
解决后,我将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]);
}