【问题标题】:foreach if user clicked on link?如果用户点击链接,foreach?
【发布时间】:2017-02-15 08:42:45
【问题描述】:

我正在使用 lightgallery,所以我需要先加载图像,然后再在 lightgallery 中调用它们。问题是图像很大,因此加载时间过长。当用户点击链接时,有什么方法可以加载特定的画廊。

<div id="lightgallery-<?php echo get_the_ID(); ?>" class="hidelightgallery">
    <?php
    foreach ($files as $image) {
        $image_attributes = wp_get_attachment_url( $image->ID );
        $attachment_title = get_the_title($image->ID);
        $caption = get_post_field('post_excerpt', $image->ID);
        ?>

      <a class="item" href="<?php echo $image_attributes ?>"  data-sub-html="<?php echo $attachment_title; ?> <?php if($caption!= '') echo ' - ' ?> <?php echo $caption ?>"><img src="<?php echo $image_attributes ?>"></a>
     <?php } ?>
     </div>

现在我想要的是,如果用户单击带有此 ID 的示例链接,然后执行 foreach。这可能吗?

【问题讨论】:

  • 在这种情况下你可以使用ajax,为什么想复杂,点击链接,只需触发ajax,获取数据并填充
  • 或者其他方式来做到这一点,隐藏foreach填充的html,直到你点击
  • 我不想像我说的大图像那样隐藏,所以页面加载需要很长时间
  • 然后使用ajax..
  • 你知道我该怎么做吗?我知道 ajax 是如何工作的,但是从我的代码中获取数据并填充它有点复杂?

标签: php jquery wordpress


【解决方案1】:

只需按照这些步骤,

  1. 创建新的模板/html 页面,您将在其中编写 html 并通过 foreach 循环填充
  2. 将您的 id = lightgallery 整个代码添加到该 html 页面
  3. 当你点击你的链接(你提到的)时触发一个 ajax
  4. Ajax 函数将获取一些 id 或需要显示的图像数量,或者您将如何在 foreach 循环中填充数据的逻辑
  5. 在 php 中,您将获得所有相关数据,并将这些数据填充到您在步骤 1 中创建的 html 文件中
  6. php 函数会将该数据返回给 ajax 函数
  7. Ajax 函数将获取您所有的动态 html 数据
  8. 将该 html 填充到您想要的任何位置,或者只是将该 html 附加到您想要的任何位置

一步一步来,这会解决你的问题。

【讨论】:

  • 我在使用wordpress,这是一个问题,因为没有html页面,一切都是.php吗?
  • 所以创建 php,在其中编写您的 html 代码,然后获取动态生成的数据并返回到 js ajax 响应
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-01-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-09
相关资源
最近更新 更多