2011-09-21 103 views
-3

我已经设置了一个带有几个绘制标记的Google地图,每个点击时都有一个带有信息的小弹出窗口。迭代遍历foreach循环 - 只显示1个项目而不是全部

我用下面的代码来显示每个绘制标记的公司名称,但它会通过foreach循环,并显示ALL公司名称一个弹出式内。

如何循环显示每个绘图标记的公司名称?我需要它显示第一个标记列表中的第一个公司,第二个标记列表中的第二个公司,等等。

// Setting the content of the InfoWindow 
infowindow.setContent(' 
     <?php $pages = get_pages(array('child_of' => $post->ID, 'sort_column' => 'menu_order')); foreach($pages as $post) { 
     setup_postdata($post); 
     $fields = get_fields(); ?> 

     <p><?php echo $fields->company_name; ?></p> 

     <?php } wp_reset_query(); ?> 
'); 
+0

罗布if声明想要什么,你编辑代码回到恶化,关闭PHP标签的里面的foreach错误仍然存​​在! – markus

回答

1

看看你的代码。真是一团糟!如果你愿意构建你的代码,你永远不会错过这些明显的错误!不要将所有代码写在一行上!使用代码风格的最佳做法!

不要把所有PHP代码放在javascript函数中。 而是使用变量$contentMarkup,将所有内容存储在那里,并最终将此变量回显到JavaScript代码中。

<?php 
    $contentMarkup = ''; 
    //do all your stuff like 
    $contentMarkup .= '<p>'; 
    $contentMarkup .= $fields->companyName; 
    $contentMarkup .= '</p>'; 
?> 

infowindow.setContent('<?php echo $contentMarkup; ?>'); 

关于您的实际问题:如果你想产生一个以上的提示/窗/ younameit,他们必须有唯一的标识符,因此您可以创建一个每个公司。但要说更多的话,我需要更多地了解你想要做什么。哪些信息可用,哪些来源。

+2

这是一条评论,不是答案。 – zzzzBov

+0

是的,但你已经删除了使线路功能的代码!它在一行中,因为Javascript标签中有PHP。 – Rob

+1

@Rob,只是因为PHP的输出需要在一行上,并不意味着PHP本身需要在一行上。 – zzzzBov

1

您展示基于内部foreach

+0

请您详细说明一下吗? – Rob

+0

我不确定'$ post','$ pages'和'$ fields'变量是什么。我的意思是检查当前在'foreach'循环中检查的项目是否是您想要显示的项目。另外,markus是正确的,你的php代码有错误,请在'foreach'中检查你的括号 – maialithar