$.get('./ajax_get_products.pl', { function_name : 'fix_product_dates', promo_id : selected_promo_id }, function(data) {
$.each([data], function(i, value) {
$('#products_dates :input[id='+value+']').val(output);
});
});
如果我在每个内部发出警报(值),它会显示整个数组。用于测试[data] = [51,52,53]的当前值。所以,我期待警报(值)在每个警报中向我抛出三个警告,其中包含一个整数。我从Perl脚本返回这个(没有选择导致它的工作),我的标题从Perl回来可能是错的吗?我试过了
print "Content-Type: text/html\n\n";
print "Content-Type: text/plain\n\n";
提前感谢您的帮助。
答案 0 :(得分:2)
您正在将data
作为$.each()
唯一项目的数组传递给我,我想你想要的是遍历data
对象
$.get('./ajax_get_products.pl', {
function_name: 'fix_product_dates',
promo_id: selected_promo_id
}, function (data) {
$.each(data, function (i, value) {
$('#products_dates :input[id=' + value + ']').val(output);
});
}, 'json');
答案 1 :(得分:1)
您返回的数据是字符串而不是数组。 您可以删除[],然后在逗号上拆分以将数据转换为数组。
但是,如果您有权访问perl脚本,则返回一个JSON字符串,这将更容易使用。
所以返回{“1”:“51”,“2”:“52”,“3”:“53”}
然后你可以在循环之前使用$ .parseJSON(数据)。并删除每次通话中的[]周围数据。