代码之家  ›  专栏  ›  技术社区  ›  Djester808

JQuery循环将php模板加载到HTML中

  •  0
  • Djester808  · 技术社区  · 3 年前

    我有一个API调用,用来获取数据。这个数据是一个数组数组,我需要遍历它们。对于每个值,我想“加载”一个用这些值创建的php模板。第一个循环正常工作并显示,但在初始值之后,它停止。我需要所有的价值观都被循环使用,让我不高兴。

    正在发生的事情的示例:[a、b、c]=>JQuery循环=>负荷=>只有“a”出现。

    编辑-每次调用load时,它都会将脚本加载到“elementToLoadPhpFile”中。我注意到它似乎覆盖了之前加载的值。我需要它附加多个子项,而不是覆盖同一个子项。

    $.ajax({
                type: 'GET',
                dataType: "json",
                url: 'apiUrl.com'
            }).done(function(data) {
                var result = data['data'];
                jQuery.each(result, function(key, value) {
                    var id = value['id'];
                    var title = value['title'];
                    var img_url = value['images']['jpg']['image_url']
                    $("#elementToLoadPhpFile").load("phpFile.php", {
                        id: id,
                        title: title,
                        img_url: img_url
                    });
                });
            });
    
    1 回复  |  直到 3 年前
        1
  •  1
  •   Twisty    3 年前

    考虑下面的问题。

    jQuery(function($) {
      $.getJSON('apiUrl.com', function(response) {
        $.each(response.data, function(key, val) {
          $.get("phpFile.php", {
            id: val.id,
            title: val.title,
            img_url: val.images.jpg.image_url
          }, function(html) {
            $("#elementToLoadPhpFile").append(html);
          });
        });
      });
    });
    

    如果 .load() 正在工作,但正在替换内容,正如预期的那样,那么您可能只想获取内容,以便可以附加它。请看这里:

    此方法是从服务器获取数据的最简单方法。这大致相当于 $.get(url, data, success) 除了它是一个方法而不是全局函数,并且它有一个隐式回调函数。当检测到成功响应时(即当textStatus为“成功”或“未修改”), .加载() 将匹配元素的HTML内容设置为返回的数据。

    对象最好用点符号书写。