【问题标题】:Undefined foreach as option AJAX未定义的 foreach 作为选项 AJAX
【发布时间】:2020-02-10 18:11:48
【问题描述】:

尝试根据类别获取子类别。 这是我从服务器得到的响应:

[{"id":"1","agname":"xxxx","sim":"xxxxxxxx","del":"0","coorid":"x"}]

现在,当我尝试在选择中显示它时,我得到未定义的输出,如下所示:

PS。我对 Javascript 不是很熟悉。

这是我的代码:

$.post("getagents.php", {
    coorid: coorid,
}, function(data){
    console.log(data);
    $('#agents').empty();
    $.each(JSON.parse(data, function(index, subAgentObj){
        $('#agents').append('<option value="'+subAgentObj.agname+'">'+subAgentObj.agname+'</option>');
    }))
});

根据@Casper 的回答,这就是我现在得到的。

【问题讨论】:

  • 能否请您也发布您的代码?
  • 哦,是的,我忘了说,我的错!
  • 完成@sajadHaibat
  • 使用这个 $('#agents').append('');
  • 你能显示选择元素的检查 html 吗?

标签: javascript ajax foreach drop-down-menu


【解决方案1】:

$.each 方法旨在通过 all elements 运行。在这个场景中,您需要遍历数组,因此使用 JavaScript forEach 方法而不是 jQuery $.each 方法。

var response = '[{"id":"1","agname":"xxxx","sim":"xxxxxxxx","del":"0","coorid":"x"}]';
JSON.parse(response).forEach((item) => {
  console.log(`id: ${item.id}`)
  console.log(`agname: ${item.agname}`)
  console.log(`sim: ${item.sim}`)
})

【讨论】:

  • 我让它显示,但它不只显示名称。我需要的只是显示名称。它显示数组的所有值
【解决方案2】:

你可以使用地图

let data = JSON.stringify([{"id":"1","agname":"xxxx","sim":"xxxxxxxx","del":"0","coorid":"x"}])


    
    let parsedData = JSON.parse(data)
    
    parsedData.map((d, i) =>{
      Object.keys(d).map((di, i) =>{
         $('#agents').append('<option    value="'+parsedData[0][di]+'">'+parsedData[0][di]+'</option>');
    
      })
    
    })
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select id="agents"></select>

在这里您知道您的响应将是一个数组,因此您可以访问您的数组并像下面那样循环它

let data = JSON.stringify([{"id":"1","agname":"xxxx","sim":"xxxxxxxx","del":"0","coorid":"x"}])


    
    let parsedData = JSON.parse(data)
    
      Object.keys(parsedData[0]).map((di, i) =>{
        $('#agents').append('<option    value="'+parsedData[0][di]+'">'+parsedData[0][di]+'</option>');
    
      })
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select id="agents"></select>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-06
    相关资源
    最近更新 更多