Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/474.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 迭代foreach循环-仅显示1项而不是全部_Php_Javascript - Fatal编程技术网

Php 迭代foreach循环-仅显示1项而不是全部

Php 迭代foreach循环-仅显示1项而不是全部,php,javascript,Php,Javascript,我已经设置了一个谷歌地图,它有几个标绘的标记,每一个当点击时都会弹出一个小窗口,里面有信息 我使用下面的代码来显示每个标绘标记的公司名称,但它通过foreach循环,在一个弹出窗口中显示所有公司名称 如何循环并显示每个打印标记的一个公司名称?我需要它在第一个标记上显示列表中的第一家公司,在第二个标记上显示列表中的第二家公司,依此类推 // Setting the content of the InfoWindow infowindow.setContent(' <?php

我已经设置了一个谷歌地图,它有几个标绘的标记,每一个当点击时都会弹出一个小窗口,里面有信息

我使用下面的代码来显示每个标绘标记的公司名称,但它通过foreach循环,在一个弹出窗口中显示所有公司名称

如何循环并显示每个打印标记的一个公司名称?我需要它在第一个标记上显示列表中的第一家公司,在第二个标记上显示列表中的第二家公司,依此类推

// 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标记的错误仍然存在!