Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/290.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
Php 等待$.each在$.getJSON内完成_Php_Jquery_Json - Fatal编程技术网

Php 等待$.each在$.getJSON内完成

Php 等待$.each在$.getJSON内完成,php,jquery,json,Php,Jquery,Json,我想通过查询数据库中某个表列中的唯一属性来生成侧边栏的链接列表。我打算创建这些链接,然后查询所有共享该值的条目 我使用$.getJSON方法获取数据并编辑DOM。我知道在$.getJSON方法中使用JSON数组的唯一方法是在其上运行$.each,因为fori=0;i您完全可以在匿名回调中运行for循环,您的可能失败了,因为length是一个属性,而不是一个方法。此外,您的HTML被破坏,因为您将部分元素附加到DOM中: <h2>Manufacturing</h2><

我想通过查询数据库中某个表列中的唯一属性来生成侧边栏的链接列表。我打算创建这些链接,然后查询所有共享该值的条目

我使用$.getJSON方法获取数据并编辑DOM。我知道在$.getJSON方法中使用JSON数组的唯一方法是在其上运行$.each,因为fori=0;i您完全可以在匿名回调中运行for循环,您的可能失败了,因为length是一个属性,而不是一个方法。此外,您的HTML被破坏,因为您将部分元素附加到DOM中:

<h2>Manufacturing</h2><ul>
您完全可以在匿名回调中运行for循环,您的可能失败了,因为length是一个属性,而不是一个方法。此外,您的HTML被破坏,因为您将部分元素附加到DOM中:

<h2>Manufacturing</h2><ul>
问题是您正在调用。追加和追加无效的HTML。浏览器不允许在dom中插入无效的html,因此它会为您关闭,并且您将在外部添加

您应该单独创建一个文件,将新文件附加到该文件中,然后将完成的文件插入到dom中

  $sidebar.append("<h2>Manufacturing</h2>");
  ul = $('<ul>');
  for(...) {
     ul.append('<li>...</li>');
  }
  $sidebar.append(ul);
问题是您正在调用。追加和追加无效的HTML。浏览器不允许在dom中插入无效的html,因此它会为您关闭,并且您将在外部添加

您应该单独创建一个文件,将新文件附加到该文件中,然后将完成的文件插入到dom中

  $sidebar.append("<h2>Manufacturing</h2>");
  ul = $('<ul>');
  for(...) {
     ul.append('<li>...</li>');
  }
  $sidebar.append(ul);

fori=0;ijQuery可能正在更正您打开ul标记的html。您应该构建一个字符串,而不是附加部分html。然后,在末尾附加字符串。效率也更高。fori=0;ijQuery可能正在更正您打开ul标记的html。您应该构建一个字符串,而不是附加部分html。然后,在末尾附加字符串。效率也更高。即时有效,我会给所有指出我业余错误的人投赞成票,但反对票太多了。谢谢。马上就行了,我会给所有指出我业余错误的人投赞成票,但是反对票太多了。谢谢。如果这是你选择的答案,@MichaelDoughty,那么这应该标记为正确答案。如果这是你选择的答案,@MichaelDoughty,那么这应该标记为正确答案。
$sidebar.html("<h1>Catalog</h1>");
$.getJSON("script.php", function(data) {
    $sidebar.append("<h2>Manufacturing</h2>"); // open the <ul> tag -- NO
    var ul = "<ul>";

    //for (var i = 0; i < data.M.length; i++)
    $.each(data.M, function(i, row) {
        ul += "<li><a>" + row.category + "</a></li>";
    });

    ul += "</ul>";
    $sidebar.append(ul);
});
  $sidebar.append("<h2>Manufacturing</h2>");
  ul = $('<ul>');
  for(...) {
     ul.append('<li>...</li>');
  }
  $sidebar.append(ul);