Php 迭代foreach循环-仅显示1项而不是全部
我已经设置了一个谷歌地图,它有几个标绘的标记,每一个当点击时都会弹出一个小窗口,里面有信息 我使用下面的代码来显示每个标绘标记的公司名称,但它通过foreach循环,在一个弹出窗口中显示所有公司名称 如何循环并显示每个打印标记的一个公司名称?我需要它在第一个标记上显示列表中的第一家公司,在第二个标记上显示列表中的第二家公司,依此类推Php 迭代foreach循环-仅显示1项而不是全部,php,javascript,Php,Javascript,我已经设置了一个谷歌地图,它有几个标绘的标记,每一个当点击时都会弹出一个小窗口,里面有信息 我使用下面的代码来显示每个标绘标记的公司名称,但它通过foreach循环,在一个弹出窗口中显示所有公司名称 如何循环并显示每个打印标记的一个公司名称?我需要它在第一个标记上显示列表中的第一家公司,在第二个标记上显示列表中的第二家公司,依此类推 // Setting the content of the InfoWindow infowindow.setContent(' <?php
// 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(); ?>
');
//设置信息窗口的内容
infowindow.setContent('
');
看看你的代码。真是一团糟!如果您愿意很好地构造代码,您就永远不会错过这些明显的错误!不要把所有代码都写在一行上!使用代码样式的最佳实践
不要把所有的PHP代码都放在javascript函数中。
相反,使用一个变量$contentMarkup
,将所有内容存储在其中,最后将该变量回显到javascript代码中
<?php
$contentMarkup = '';
//do all your stuff like
$contentMarkup .= '<p>';
$contentMarkup .= $fields->companyName;
$contentMarkup .= '</p>';
?>
infowindow.setContent('<?php echo $contentMarkup; ?>');
infowindow.setContent(“”);
关于您的实际问题:如果您想要生成多个tooltip/window/younameit,它们必须具有唯一的标识符,以便您可以为每个公司创建一个。但要说的更多,我需要更多地了解你到底想做什么。什么信息可用,来自什么来源。根据
if
语句在foreach
loop中显示您想要的信息。这是一条注释,不是答案。是的,但您已经删除了使行功能正常的代码!它在一行中,因为Javascript标记中有PHP。@Rob,仅仅因为PHP的输出需要在一行中,并不意味着PHP本身需要在一行中。这并不能真正回答Markus的问题。@Markus,我的观点是,在你得到与答案相当相似的东西之前,你不应该发布答案。发布评论只是为了让你能进入“最旧答案”的大门,这充其量只是误导。我不确定什么是$post
,$pages
和$fields
变量。我的意思是检查当前在foreach
循环中签入的项目是否是您想要显示的项目。此外,markus是对的,您的php代码中有一个错误,请检查foreach
Rob中的括号,您将代码编辑得更糟,foreach中关闭php标记的错误仍然存在!