1

我在magento商店遇到了一个问题。页面显示一半,然后中断。这是我的页面。

http://www.statecertification.com/regshop/class-locator.html

如果您查看页面源代码,这是它中断的代码

<script type="text/javascript">

        var marker, i;
        var map;
        var store_locations = <?php echo json_encode($Stores); ?>;

任何人都可以查看,同一页面正在其他服务器上运行。

谢谢

4

7 回答 7

1

启用开发人员模式并将您的 index.php 设置为显示错误。

在第 75-79 行附近:

#if (isset($_SERVER['MAGE_IS_DEVELOPER_MODE'])) {
    Mage::setIsDeveloperMode(true);
#}

ini_set('display_errors', 1);

这将启用它 - 确保在完成后恢复它。

还要检查/var/log您的 Apache 日志文件夹,以找出它崩溃的确切原因。

于 2012-11-13T22:24:34.133 回答
0

用单引号括起来:

var store_locations = '<?php echo json_encode($Stores); ?>';
于 2012-11-13T17:55:21.193 回答
0

你不需要回声:

 var store_locations = <?= json_encode($Stores); ?>;
于 2012-11-13T17:57:10.550 回答
0

您使用的是什么版本的 Magnento 和 php,因为它肯定是 php 错误?json_encode 需要 php >= 5.2.0

也试试

var store_locations = '<?php echo Mage::helper('core')->jsonEncode($Stores);?>';
于 2012-11-13T18:02:26.623 回答
0

不需要报价,因为它是 JSON ..

var test = {'var1':1, 'var2':2};
//this is totally OK and must not be enclosed bu quotes (a JSON object is not a string!)

顺便说一句,这不是 javascript 问题,而是 PHP 隐藏的致命错误。(HTML 被截断,带或不带引号..)

要查看发生了什么,您需要激活错误显示:

<?php
ini_set('display_errors' 1);
error_reporting(E_ALL);
?>

查看您的来源,可能存在两个问题:

  • json_encode 函数丢失(你的 PHP 版本是什么?)
  • $Stores 变量未定义或不是字符串

玩得开心

于 2012-11-13T20:34:26.080 回答
0

根据我的观点,问题不在于引号等。

我敢打赌,变量 $Stores 不存在。

作者还可以通过以下操作来发现问题:

在 index.php 中使用 ini_set('display_errors', '1'); 而不是 #ini_set('display_errors', '1'); 这将告诉你,确切的错误是什么。

于 2012-11-13T20:54:48.730 回答
0

我今天有确切的情况。主页加载到一半然后中断,没有页脚等。我已经安装了 ioncube 加载程序,这不是问题。在我的情况下,它原来是我的主题文件夹 /app/design/frontend/yourthemehere/default/template/page/html/midcolumn.phtml 中的一个文件 midcolumn.phtml 因为我昨天编辑了这个文件,当我恢复原始文件时主页再次正常工作。不过,这不是你的情况。我建议通过取消注释 index.php 文件中的行来进行 magento 调试

ini_set('display_errors', 1);

*(删除#并在完成后将其放回)

于 2015-09-11T17:31:38.987 回答