2016-02-21 62 views
1

我正尝试设置一个Wordpress组合页面,其中包含多个复选框过滤选项。 js代码和一些HTML来自MixItUp(http://codepen.io/patrickkunka/pen/iwcap)。多个复选框过滤器返回服务器错误500

<div class="row"> 
    <!-- Filter categories --> 
    <div class="col-md-4">  
     <form class="controls" id="Filters"> 
      <?php 
      $count1 = 0; 
      // all products of category with sortable 
      function enc8($c){ return utf8_encode($c); } 
      $terms1 = get_terms(product_group); 
      $count1 = count($terms1); 
      echo '<fieldset>'; 
       if ($count1 > 0){ 
         foreach ($terms1 as $term1) { 
          $termname1 = strtolower($term1->name); 
          $termname1 = str_replace(array(enc8('ä'),enc8('Ä'),enc8('ö'),enc8('Ö'),enc8('ü'),enc8('Ü'),enc8('ß'),' &amp; ',' '),array('ae','Ae','oe','Oe','ue','Ue','ss','-','-'),$termname1); 
          echo '<div class="checkbox"><input type="checkbox" value=".'.$termname1.'"/><label> '.$term1->name.'</label></div>'; 
         } 
       } 
      echo '</fieldset>'; 
      ?> 
      <a class="btn btn-small btn-default" id="Reset">Reset</a> 
     </form> 
    </div> 
    <div class="col-md-4">  
     <form class="controls" id="Filters"> 
      <?php 
      $count2 = 0;  
      // all products of category with sortable 
      function enc8($c){ return utf8_encode($c); } 
      $terms2 = get_terms(product_category); 
      $count2 = count($terms2); 
      echo '<fieldset>'; 
       if ($count2 > 0){ 
         foreach ($terms2 as $term2) { 
          $termname2 = strtolower($term2->name); 
          $termname2 = str_replace(array(enc8('ä'),enc8('Ä'),enc8('ö'),enc8('Ö'),enc8('ü'),enc8('Ü'),enc8('ß'),' &amp; ',' '),array('ae','Ae','oe','Oe','ue','Ue','ss','-','-'),$termname2); 
          echo '<div class="checkbox"><input type="checkbox" value=".'.$termname2.'"/><label> '.$term2->name.'</label></div>'; 
         } 
       } 
      echo '</fieldset>'; 
      ?> 
      <a class="btn btn-small btn-default" id="Reset">Reset</a> 
     </form> 
    </div> 

第一个分类筛选器(product_group)工作得很好。但是,当我添加第二个(product_category)时,页面部分崩溃并且Chrome返回以下错误消息:无法加载资源:服务器响应的状态为500(内部服务器错误)。

的HTML输出如下:

<div class="col-md-4">  
    <form class="controls" id="Filters"> 
     <fieldset> 
      <div class="checkbox"> 
       <input type="checkbox" value=".class01"><label> Class01</label> 
      </div> 
      <div class="checkbox"> 
       <input type="checkbox" value=".class02"><label> Class02</label> 
      </div> 
      <div class="checkbox"> 
       <input type="checkbox" value=".class03"><label> Class03</label> 
      </div> 
     </fieldset> 
     <a class="btn btn-small btn-default" id="Reset">Reset</a> 
    </form> 
</div> 
<div class="col-md-4">  
    <form class="controls" id="Filters"> 
    <!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/ 

    Page Caching using disk: enhanced (User is logged in) 

    Served from: mydomain.org @ 2016-02-21 17:03:37 by W3 Total Cache --> 
    </form> 
</div> 

有没有人有一个想法是什么问题?

+0

多少复选框有:两个滤波器结合到一个单一的功能,有点改名一些变量进行解决?这是不可能的,但是你有可能击中超过1k个物品吗?什么值被提交给服务器? – gabe3886

+0

目前有六个复选框用于第一个过滤器(我将样本的输出减少到三个)。未来每个人将有超过20人的可能性不大。 – friiitzdesign

回答

0

最后,我明白了。问题是以下功能

function enc8($c){ return utf8_encode($c); } 

在代码中是两次。现在

<form class="controls" id="Filters"> 
    <?php 
    $countgroups = 0; 
    $countcats = 0; 

    function enc8($c){ return utf8_encode($c); } 

    $groups = get_terms(product_group); 
    $countgroups = count($groups);       
    $cats = get_terms(product_category); 
    $countcats = count($cats); 

    echo '<fieldset class="groups"><h4>Produktgruppen</h4>'; 
     if ($countgroups > 0){ 
       foreach ($groups as $group) { 
        $groupname = strtolower($group->name); 
        $groupname = str_replace(array(enc8('ä'),enc8('Ä'),enc8('ö'),enc8('Ö'),enc8('ü'),enc8('Ü'),enc8('ß'),' &amp; ',' '),array('ae','Ae','oe','Oe','ue','Ue','ss','-','-'),$groupname); 
        echo '<div class="checkbox"><input type="checkbox" value=".'.$groupname.'"/><label>'.$group->name.'</label></div>'; 
       } 
     } 
    echo '</fieldset>'; 
    echo '<fieldset class="cats"><h4>Produktkategorien</h4>'; 
     if ($countcats > 0){ 
       foreach ($cats as $cat) { 
        $catname = strtolower($cat->name); 
        $catname = str_replace(array(enc8('ä'),enc8('Ä'),enc8('ö'),enc8('Ö'),enc8('ü'),enc8('Ü'),enc8('ß'),' &amp; ',' '),array('ae','Ae','oe','Oe','ue','Ue','ss','-','-'),$catname); 
        echo '<div class="checkbox"><input type="checkbox" value=".'.$catname.'"/><label>'.$cat->name.'</label></div>'; 
       } 
     } 
    echo '</fieldset>'; 
    ?> 
    <a class="btn btn-small btn-default" id="Reset">Reset</a> 
</form> 

就像一个魅力:)

相关问题