【问题标题】:Incrementing a foreach loop and only showing one child增加一个foreach循环并且只显示一个孩子
【发布时间】:2011-09-22 14:22:44
【问题描述】:

我正在创建一个绘制多个标记的自定义 Google 地图。

查看链接,这样可以更轻松地解释正在发生的事情以及我想要什么

如果您单击每个标记,它会显示从子页面抓取的公司名称。目前它在每个标记上显示所有公司名称。如何每个标记只显示一个公司名称?也就是说,当我添加更多公司时,一个说“MediWales”,另一个说“Teamworks Design & Marketing”,依此类推。

这是控制小弹出窗口的代码:

<?php $pages = get_pages(array('child_of' => 1873, 'sort_column' => 'menu_order')); 
$counter = 1;
foreach($pages as $post) 
{
setup_postdata($post); 
$fields = get_fields(); ?> 
<p><?php $counter++; echo $fields->company_name;?></p>
<?php } wp_reset_query(); ?>

一旦它循环一次,下次循环时我需要它从下一个孩子开始,而不是显示第一个。

更新: 看起来非常接近,它显示的是一家公司,但两个标记上都是同一家公司。

<?php 
$counter = 1; 
$pages = get_pages(array('child_of' => 1873, 'sort_column' => 'menu_order', 'offset' => $counter, 'number' => 1)); 
foreach($pages as $post) { 
setup_postdata($post); 
$fields = get_fields(); ?> 
<p><?php echo $fields->company_name; echo $counter; ?></p>
<?php $counter++; } 
wp_reset_query(); ?>

【问题讨论】:

  • 能否以某种方式使用“offset”参数?

标签: php wordpress foreach


【解决方案1】:

您的问题是 PHP 本质上是经过预处理的。 JavaScript 不会在您每次单击该标记时运行 PHP

最好的办法是从PHP 输出一个包含所有标记及其属性的JSON 对象,然后使用JavaScript 动态解析它。

【讨论】:

  • 感谢您的回复,因为它是 PHP,无论 Javascript 在做什么。 php 正在从我的 CMS 中获取数据。问题在于 php 循环而不是任何 javascript。
  • 感谢您的更新,虽然我不知道该怎么做!我什至无法让 php 循环在所有 Javascript 之外工作。我也不相信预处理的评论,因为有人也说过同样的话,但它在 javascript 中处理一些其他 php 就好了。例如,绘制标记的邮政编码来自我的 CMS 通过 php。
  • 也许忽略 javascript 并尝试让 php sn-p 在正常页面上工作。
  • 您说循环会返回每个公司名称,对吗?这意味着它正在工作。您只需要重新构建您的 PHP 以便它一次输出您的所有信息以供 JavaScript 处理,否则将 PHP 放在另一个页面中并进行 Ajax 调用。
  • 我无法让 php 在正常页面上按照我想要的方式工作 - 这就是问题所在。
猜你喜欢
  • 2021-06-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-21
  • 1970-01-01
  • 2014-12-29
  • 2014-08-27
  • 1970-01-01
相关资源
最近更新 更多