Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/383.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
Javascript 数组的Foreach循环,通过AJAX查询获得_Javascript_Ajax_Foreach_Iteration - Fatal编程技术网

Javascript 数组的Foreach循环,通过AJAX查询获得

Javascript 数组的Foreach循环,通过AJAX查询获得,javascript,ajax,foreach,iteration,Javascript,Ajax,Foreach,Iteration,我有JS代码: $("#select_bank").change(function () { selected_bank = $("#select_bank option:selected").text(); $.ajax({ type: 'POST', dataType: 'html', data: { selectedBank: selected_bank }, url: '<?= base_url() . 'atm/sel

我有JS代码:

$("#select_bank").change(function () {
  selected_bank = $("#select_bank option:selected").text();

  $.ajax({
    type: 'POST',
    dataType: 'html',
    data: {
      selectedBank: selected_bank
    },
    url: '<?= base_url() . 'atm/select_region'; ?>',
    success: function (list_regions) {
      foreach(keyVar in list_regions) {
        alert(list_regions[keyVar]);
      }
    }
  });
});
$(“#选择银行”)。更改(功能(){
选定的银行=$(“#选择银行选项:选定”).text();
$.ajax({
键入:“POST”,
数据类型:“html”,
数据:{
所选银行:所选银行
},
url:“”,
成功:功能(列出区域){
foreach(列表区域中的keyVar){
警报(列表_区域[keyVar]);
}
}
});
});
在回调“succes”时,我从服务器的脚本中获取数组-在警报中,我看到了“数组”-因此我想在客户端通过这个数组进行迭代,就像我上面编码的那样,但在执行此操作时,我在控制台中得到错误-“var keyVar未定义”。据我所知,我需要将
list_regions
param键入数组或以其他方式修复它。求你了,如何让它变得更好? 谢谢

upd:

试试这个:

$("#select_bank").change(function(){
    // The following line was missing a var declaration,
    // Making it an implicit global
    var selected_bank = $("#select_bank option:selected").text();

    $.ajax({
        type:'POST',
        dataType:'html',
        data: { selectedBank: selected_bank },
        url:'<?=base_url().'atm/select_region'; ?>',
        success:function(list_regions){
            var keyVar;
            for(keyVar in list_regions) {
                if (list_regions.hasOwnProperty(keyVar)) {
                    alert(list_regions[keyVar]);
                }
            }
        }
    });

});
$(“#选择#银行”)。更改(函数(){
//下一行缺少var声明,
//让它成为一个隐含的全球
var selected_bank=$(“#select_bank选项:selected”).text();
$.ajax({
类型:'POST',
数据类型:'html',
数据:{selectedBank:selected_bank},
url:“”,
成功:功能(列出区域){
var-keyVar;
for(列表_区域中的键变量){
if(列出地区。hasOwnProperty(keyVar)){
警报(列表_区域[keyVar]);
}
}
}
});
});

Javascript没有
foreach
结构。使用
$。jQuery的每个
方法

如果我是对的,那么您不能以那种方式将foreach循环转换为jQuery

您应该使用.each来迭代这些值

$.each(list_regions, function(index, value) {
  alert(value);
});

您可以找到更多信息。

尝试将“foreach”改为“for”,Eugene正在尝试使用JavaScript构造,您立即告诉他jQuery解决方案。仅仅因为Eugene已经在使用jQuery并不是鼓吹他们忽视语言的内置结构的好理由。@Mythril,但是
$。在这种情况下,each()
更有用。它到底有什么用处?请不要争辩。只是我想流式地使用纯JavaScript而不是Jquery来进行一些简单的操作,如果可能的话,可以用相当简单的方式)@danil,这两种都可以在a for中使用。在looop中,我似乎遇到了服务器脚本上的问题:我得到了带有字母“a”、“r”、“r”、“a”、“y”的警报序列而不是数组的值?我猜base_url()将返回一个PHP数组,该数组被转换为字符串“array”,然后在Javascript中逐字迭代。我已经更新了帖子,以显示我在JS脚本中得到的内容。但要做到这一点——我在Codeigner中做了一个肮脏的把戏,但我真的想避免这种糟糕的方式……谢谢你的建议,但它的工作原理正如我在第一次评论中提到的——“似乎我的服务器脚本有问题:我收到的警报序列是字母“A”、“r”、“r”、“A”、“y”,而不是数组的值?”