Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.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
Javascript foreach()触发器';未捕获范围错误:超过最大调用堆栈大小';_Javascript_Php_Foreach - Fatal编程技术网

Javascript foreach()触发器';未捕获范围错误:超过最大调用堆栈大小';

Javascript foreach()触发器';未捕获范围错误:超过最大调用堆栈大小';,javascript,php,foreach,Javascript,Php,Foreach,我遇到了一个简单的php foreach-wich属性类(奇数/偶数)到divs的麻烦。我想我有一个Syntax错误,因为它可以工作,但循环没有结束(UncaughtRangeError:控制台中超过了最大调用堆栈大小: <?php $count = 0; foreach( $this->boutiques_details as $key => $value){ if ($value->ville == $this->ville) { echo

我遇到了一个简单的php foreach-wich属性类(奇数/偶数)到divs的麻烦。我想我有一个Syntax错误,因为它可以工作,但循环没有结束(UncaughtRangeError:控制台中超过了最大调用堆栈大小:

<?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';
将上述内容替换为以下内容:

echo '<div data-lng="' . $this->escape($value->longitude) . '" data-lat="' . $this->escape($value->latitude) . '" class="' . (++$count%2 ? "shop odd" : "shop even") . '">';
echo';
通过这种方式,PHP将识别PHP部分(如
$This->escape($value->longitude)
),并将其结果插入到您正在调用的字符串中


由于您直接使用PHP部件,javascript(jQuery)可能会识别美元符号(
$
),试图对它做些什么,但不知道如何做,但失败了。

您发布了PHP,但您的错误是一个javascript错误。是的,但它来自于该PHP脚本。事实上,当我删除它时,我没有任何问题否-它不是来自PHP脚本。这可能是因为您有javascript/jQuery脚本,可以使用
数据检查元素ode>或
data lat
属性或具有
.shop
类的元素,当您删除此循环时,没有此类元素。如果您右键单击错误,它将显示javascript错误所在的行。您添加的奇数/偶数类是否仅用于样式设置,或者它们还有其他用途?如果仅用于样式设置,您可以n仅使用css进行此操作(无需添加类)。是的,但是使用nth的css唯一解决方案在ie8上不起作用,所以这是对meThanks men的最佳解决方案!就像Charm一样工作。如果修复属性修复了堆栈溢出问题,那么站点上的javascript代码一定会有非常奇怪的地方。这可能是因为jQuery也使用美元符号。@Nic为什么jQuery会随机计算在没有被告知的情况下,在随机属性中填充?@Nic从我可以想象的情况来看,代码中的某个地方有一个
eval(elem.attr('data-lng'))
来实现这一点。不太令人放心。:)