javascript - jQuery 菜单不加载 PHP 子类别

标签 javascript php jquery css opencart

我们有一个自定义的 jQuery 菜单,它在我们的 OpenCart 商店中运行良好。然而,第二级子类别不会显示,PHP 在更改后的菜单或原始菜单上都不正确。任何具有 2 或更多深度的类别都不会显示。

所以我们有一个 2 深类别 http://ocart.site/opencart/index.php?route=product/category&path=25_29_59

但是你看它不会显示在主菜单中 http://ocart.site/opencart

如果我重新添加原始默认菜单的默认部分,它实际上会使菜单中断。您可以在以下位置查看新旧菜单的比较 http://ocart.site/defaultmenutoJQ.html

有什么东西阻碍了某处的显示负载,有什么想法吗?

这是 JSFiddle https://jsfiddle.net/mtq5khz0/ 中的所有相关代码

  <?php if ($categories) { ?>
  <div id="cssmenu">
    <ul>
      <?php foreach ($categories as $category) { ?>
      <li><a href="<?php echo $category['href']; ?>"><?php echo $category['name']; ?></a>
          <?php for ($i = 0; $i < count($category['children']);) { ?>
          <ul>
            <?php $j = $i + ceil(count($category['children']) / $category['column']); ?>
            <?php for (; $i < $j; $i++) { ?>
            <?php if (isset($category['children'][$i])) { ?>
            <li><a href="<?php echo $category['children'][$i]['href']; ?>"><?php echo $category['children'][$i]['name']; ?></a></li>
            <?php } ?>
            <?php } ?>
          </ul>
          <?php } ?>
        <?php } ?>
      </li>
    </ul>
  </div>
  <?php } ?>

OpenCart 的完整 header 代码 - 编辑代码 https://jsfiddle.net/v5vmLbjj/

OpenCart 默认安装的完整 header 代码 https://jsfiddle.net/tneqy2qt/

(类别下拉菜单代码,靠近代码块的页脚)

这里是 PHP 使用的 JQuery 菜单代码 https://jsfiddle.net/ezhnnbsg/

最佳答案

您的内部循环代码看起来很奇怪。按照代码,它看起来可以工作,但它可能容易出错。所以我稍微重写了一下:

if ($categories) {
    echo '<div id="cssmenu">';
    echo '  <ul>';
    foreach ($categories as $category) {
        echo '    <li><a href="' . $category['href'] .'">' . $category['name'] . '</a>';

        if (count($category['children']) > 0) {
            $columns = array_chunk($category['children'], ceil(count($category['children']) / $category['column']));
            foreach ($columns as $children) {
                echo '      <ul>';
                foreach ($children as $child) {
                    echo '        <li><a href="' . $child['href'] . '">' . $child['name'] . '</a></li>';
                }
                echo '      </ul>';
            }
        }
    }
    echo '    </li>';
    echo '  </ul>';
    echo '</div>';
}

关于javascript - jQuery 菜单不加载 PHP 子类别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41238136/

相关文章:

javascript - 如何停止 Google 表单中的 Onsubmit

php - Ajax search pro 高级选项 - 将自定义字段与术语组合

jquery - 在 css 中更改背景位置不起作用

Jquery UI, "dead area"带有可排序的 portlet

javascript - jQuery:基于容器中元素数量的 css 边距?

javascript - 如何使用特殊的滚动效果?

javascript - React 生命周期方法,是否为 componentWillReceiveProps

javascript - 如何检查鼠标是否仍在 Javascript 中的元素上

php - 获取未定义索引: REQUEST_URI - When Run Artisan Commands in Laravel

php - 使用 mysql_* API 从 MySQL 中选择一行