Jquery 在ajax返回后,每个()值都是整个数组
我想我有个愚蠢的问题。我觉得自己很笨,到处都在用。我还是Javascript的新手,但我会继续。在单击按钮via.get()时,我将一个“升级代码id”传递给一个perl脚本,然后返回一些“产品id”,我希望遍历这些id并替换/更新一个隐藏的输入值。这看起来很简单,但是我在一次迭代中的值就是整个数组Jquery 在ajax返回后,每个()值都是整个数组,jquery,perl,get,each,Jquery,Perl,Get,Each,我想我有个愚蠢的问题。我觉得自己很笨,到处都在用。我还是Javascript的新手,但我会继续。在单击按钮via.get()时,我将一个“升级代码id”传递给一个perl脚本,然后返回一些“产品id”,我希望遍历这些id并替换/更新一个隐藏的输入值。这看起来很简单,但是我在一次迭代中的值就是整个数组 $.get('./ajax_get_products.pl', { function_name : 'fix_product_dates', promo_id : selected_promo_id
$.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]的当前值。所以,我希望警报(value)会向我抛出三个警报,每个警报中包含一个整数。我从一个Perl脚本返回这个消息(没有选择,因为它是用于工作的),我从Perl返回的头是否可能是错误的?我试过了
print "Content-Type: text/html\n\n";
print "Content-Type: text/plain\n\n";
提前感谢您的帮助。您正在向
$传递一个数组,其中数据是唯一的项。each()
,我想您需要的是遍历数据对象
$.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');
您正在传递一个数组,其中数据
是$的唯一项。对于每个()
,我认为您需要的是遍历数据
对象
$.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');
返回的数据是字符串而不是数组。
您可以删除[],然后在逗号上拆分,以将数据转换为数组
但是,如果您可以访问perl脚本,则返回一个JSON字符串,这将更易于使用
所以返回{“1”:“51”、“2”:“52”、“3”:“53”}
然后,您可以在循环之前使用$.parseJSON(数据)。并删除每次调用中的[]环绕数据。返回的数据是字符串而不是数组。
您可以删除[],然后在逗号上拆分,以将数据转换为数组
但是,如果您可以访问perl脚本,则返回一个JSON字符串,这将更易于使用
所以返回{“1”:“51”、“2”:“52”、“3”:“53”}
然后,您可以在循环之前使用$.parseJSON(数据)。并删除每次调用中围绕数据的[]括号。删除[数据]
中围绕$的括号。每个使用而不是$。Get删除[数据]
中围绕[数据]
的括号。每个使用而不是$。Get注意数据可能是一个字符串。@KevinB错过了内容类型,因为是一个数组,所以数据类型可能可以作为json
传递以修复它。但是请注意,data
可能是一个字符串。@KevinB错过了内容类型
,因为是一个数组,所以数据类型可能可以作为json
传递以修复它!添加数据=data.split(',');并且解决了我的问题。我确实可以访问Perl脚本(因为我写了它,呵呵),但我决定只添加这一行。@SpongeyleHashpants手动解析JSON就像使用鞋子而不是自行车制动器一样有意义。@mpapec我相信我同意你的看法,在这种情况下,我的返回数据不是JSON。我只是返回整数来更新输入id。我选择不返回JSON。不过,我确实会从ajax调用返回JSON,具体取决于传递的函数名,所有这些都是通过相同的pl脚本自动完成的。@spongeylehashpants因为您可以控制返回,所以只需返回CSV数据,就可以避免删除[]感谢Vlad!添加数据=data.split(',');并且解决了我的问题。我确实可以访问Perl脚本(因为我写了它,呵呵),但我决定只添加这一行。@SpongeyleHashpants手动解析JSON就像使用鞋子而不是自行车制动器一样有意义。@mpapec我相信我同意你的看法,在这种情况下,我的返回数据不是JSON。我只是返回整数来更新输入id。我选择不返回JSON。但是,根据传递的函数名,我确实会从ajax调用中返回JSON,所有这些都是通过相同的pl脚本自动完成的。@spongeylehashpants因为您可以控制返回,所以只需返回CSV数据,就可以避免删除[]