2016-12-20 3 views
14

OpenCartストアでうまく機能しているjQueryカスタムメニューがあります。しかし、2番目のレベルの子カテゴリは表示されません。PHPは変更されたメニューまたは元のメニューでは正しくありません。深度が2以上のカテゴリのものは表示されません。jQueryメニューにPHPの子カテゴリがありません

だから我々は http://ocart.site/opencart/index.php?route=product/category&path=25_29_59

で2深いカテゴリを持っているしかし、あなたは、私は元のデフォルトのメニューのデフォルトの部分に戻って追加した場合、それは、 http://ocart.site/opencart

でメインメニューには表示されません見ますそれは実際にブレークをメニューにします。古いメニューと新しいメニューの比較を見ることができます http://ocart.site/defaultmenutoJQ.html

何かがディスプレイの負荷をどこかにブロックしていますか?編集コードhttps://jsfiddle.net/v5vmLbjj/

OpenCartデフォルトのインストールのための全体のヘッダコードhttps://jsfiddle.net/tneqy2qt/

(カテゴリ]ドロップダウンメニューコード - ここ

は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のための全体のヘッダコードに関連するすべてのコードです、コードブロックのフッターに近い)

およびh ereはPHPが動作するJQueryメニューコードですhttps://jsfiddle.net/ezhnnbsg/

+2

なぜPHPを使ってjsfiddleを投稿しますか?あなたはそれが奇跡的に有効なhtmlに変わるだろうと思いますか? – madalinivascu

+1

サイトでサブカテゴリが正しく表示されていると見て、サブカテゴリのページでサブカテゴリの子を見ることができます – madalinivascu

+2

@ merch89 'print_r($ categories)'や 'var_dump($ categories)'の出力を更新してインクルードできますか? ?私はそれがすべてのサブカテゴリーを再帰的に持っていると思うし、各カテゴリー項目のために再帰的カテゴリー* parent> children *を行う必要がある。 –

答えて

0

をお試しくださいあなたのコードを見てください。

まず、$categoriesとそれぞれ$category['children']をループしています。 「第2レベル」の子に到達するには、別のループを実行する必要があります。例:

if(!empty($category['children'][$i]['children'])) { 
    echo '<ul>'; 
    foreach($category['children'][$i]['children'] as $children2) { 
     echo '<li/>'; 
    } 
    echo '</ul>'; 
} 

2番目の問題は、あなたのフィドルCSSです。それはそう#cssmenu ul ul li a

変更上記のzインデックスを必要とするよう

#cssmenu ul ul li a { font-size: 12px; font-weight: 400; z-index: 9999; width: 250px; padding: 11px 15px; text-decoration: none; color: #000; border-bottom: 1px solid rgba(150, 150, 150, .15); background: #ddd; webkit-font-size: 11.5px; }

#cssmenu .submenu-button { position: absolute; z-index: 99; top: 0; right: 0; display: block; width: 46px; height: 32px; cursor: pointer; border-left: 1px solid rgba(120, 120, 120, .2); }

#cssmenu .submenu-buttonは、ドロップダウンをトリガーするクラスです:

あなたはこれを持っていますそれまで:

#cssmenu ul ul li a { font-size: 12px; font-weight: 400; z-index: 98; width: 250px; padding: 11px 15px; text-decoration: none; color: #000; border-bottom: 1px solid rgba(150, 150, 150, .15); background: #ddd; webkit-font-size: 11.5px; }

お知らせz-index: 98;の代わりz-index: 9999;

あなたの問題を解決するのに役立ちます。

+0

こんにちは、どのようにPHPをhttps://jsfiddle.net/mtq5khz0に組み込むことができますか? – me9867

+0

jsfiddleでphpを実行することはできません。 – CUGreen

+0

@ merch89、更新されたフィドルがあります。 https://jsfiddle.net/mtq5khz0/4/ – CUGreen

3

あなたの内部ループコードは非常に奇妙に思えます。コードに続いて、それはうまくいくように見えますが、エラーが発生する可能性があります。だから私はそれを少し書き直し:

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>'; 
} 
+0

Ronaldに感謝します。ちょうどこれを統合する際に問題があります。私はhttps://doc-10-58-docs.googleusercontent.com/docs/securesc/3j8cv73604l8fr6lnv9jtes7d1iia283/1igdg0psbrb4frnr8d6o9mnnboj29h7c/1482480000000/06264479721830385231/06264479721830385231/0B3ArIuPt8mKRZjFHaG4xN1EtR1U?eをhttps://jsfiddle.net/nfr1dmhoで試してみましたし、このエラーを取得しています= – me9867

+2

@ merch89を表示すると、jsfiddleでphpを実行することはできません。 – CUGreen

0

あなたは、単一引用符内に二重引用符を使用して 私が正しくあなたを理解していれば、から私に際立って物事のカップルがあります。この

<?php 
    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>"; 
     } 
?> 
+0

申し訳ありませんVijaya、まだ3級の猫は来ていません。 Jqueryコードは上記の通りです。答えはおそらくそこにある可能性があります(ホーム»カテゴリ»第2レベルカテゴリ»第3レベルカテゴリ) – me9867

関連する問題