Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 在ajax返回后,每个()值都是整个数组_Jquery_Perl_Get_Each - Fatal编程技术网

Jquery 在ajax返回后,每个()值都是整个数组

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

我想我有个愚蠢的问题。我觉得自己很笨,到处都在用。我还是Javascript的新手,但我会继续。在单击按钮via.get()时,我将一个“升级代码id”传递给一个perl脚本,然后返回一些“产品id”,我希望遍历这些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数据,就可以避免删除[]