javascript - foreach() 触发 'Uncaught RangeError: Maximum call stack size exceeded'

标签 javascript php foreach

我在使用简单的 php foreach 属性类(奇数/偶数)到 div 时遇到了麻烦。我认为我有一个合成错误,因为它可以工作,但循环没有结束(未捕获的范围错误:控制台中超出了最大调用堆栈大小:

<?php
$count = 0;

foreach( $this->boutiques_details as $key => $value){
     if ($value->ville == $this->ville)     {

echo '<div data-lng="$this->escape($value->longitude)" data-lat=" $this->escape($value->latitude)" class="' . (++$count%2 ? "shop odd" : "shop even") . '">';
?>
        <p><b><?php echo $this->escape($value->ville)?></b></p>
        <p><?php echo $this->escape($value->quartier)?></p>
        <p><?php echo $this->escape($value->adresse)?></p>
        <p><?php echo $this->escape($value->num_contact_1)?></p>
        </div>
  <?php
        }
 }

?>

感谢您的帮助!

最佳答案

您尝试回显的字符串中有一些 PHP 代码,但 PHP 并未对其进行计算,因为它位于字符串内部:

echo '<div data-lng="$this->escape($value->longitude)" data-lat="$this->escape($value->latitude)" class="' . (++$count%2 ? "shop odd" : "shop even") . '">';

将上面的内容替换为以下内容:

echo '<div data-lng="' . $this->escape($value->longitude) . '" data-lat="' . $this->escape($value->latitude) . '" class="' . (++$count%2 ? "shop odd" : "shop even") . '">';

这样,PHP 部分(例如 $this->escape($value->longitude))将被 PHP 识别,并且它们的结果将插入到您所在的字符串中 回显ing。

因为您直接echoing PHP 部分,javascript (jQuery) 可能识别了美元符号 ($),尝试用它做一些事情但没有知道怎么做,但失败了。

关于javascript - foreach() 触发 'Uncaught RangeError: Maximum call stack size exceeded',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23488819/

相关文章:

javascript - 知道绿点的坐标,使用输入将其滚动到红点周围

php - 日期和团体之间的协商

php - 在 jQuery 中迭代 PHP 数组?

php - 查找文件数据是否为图像(php)

php - 将 3 个表合并为一个并插入数据库

php - 从foreach循环php中将信息存储在数组中

c# - ForEach循环不改变类的属性

javascript - 我无法从数组中删除项目

javascript - 关闭弹出窗口后如何重新加载现有页面

javascript - jquery ui 可调整 float 元素的大小。