迭代一个foreach循环 - 只显示1个项目而不是全部

时间:2011-09-21 14:46:48

标签: php javascript

我已经设置了一张Google地图,其中包含多个绘制的标记,每个标记点击时都有一个带有信息的弹出窗口。

我正在使用以下代码显示每个绘制标记的公司名称,但它正在经历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(); ?>
');

2 个答案:

答案 0 :(得分:1)

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

不要将所有PHP代码放在javascript函数中。 相反,使用变量$contentMarkup,将所有内容存储在那里,最后将此变量回显到javascript代码中。

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

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

关于您的实际问题:如果您想要生成多个工具提示/窗口/您的名字,他们必须拥有唯一标识符,以便您可以为每个公司创建一个。但是要说更多,我需要更多地了解你正在尝试做什么。可获得哪些信息以及来自哪些来源。

答案 1 :(得分:1)

根据if循环

中的foreach语句显示您想要的内容