2014-01-16 43 views
0

我有3个选择菜单 - 产品,主题和子主题。选择全部三项将显示所选内容的常见问题解答。那部分工作正常。我的问题是,一旦选择了3个常见问题解答并显示,如果用户返回并选择另一个产品,则下面的菜单和文本将保留在那里。我希望他们消失。我已经尝试了$(。'div')。hide()在几个位置,无济于事。谈到AJAX,我有点儿绿色。这里是我的代码:清除页面/菜单更改菜单 - php/AJAX

$(document).ready(function() { 
      $('.box').hide(); 


      $('#product').on('change', function() { 
       $('.box').hide(); 

       $('#'+$(this).val()).show(); 

      });  

      $('#topic').on('change', function() { 
       var sel = $(this).find('option:selected').text(); 
       $.ajax({ 
        url: "support_process.php", 
        type: "POST", 
        data: {info : sel}, 
        success: function(data) { 
         $(".divtopic").html(data); 
        } 
       }); 
      }); 

      $('body').on('change', '#subtopic', function(){ 
       var sel = $(this).find('option:selected').text(); 
       $.ajax({ 
        url: "subtopic_process.php", 
        type: "GET", 
        data: {info : sel}, 
        success: function(data) { 
         $(".divsubtopic").html(data); 
        } 
       }); 
      }); 

     }); 

和HTML:

<div class="styled-select"> 
    <select id="product"> 
    <option value="option0">Select product...</option> 
    <?php 
     while ($row = mysqli_fetch_array($sql)) 
     { 
     $name = $row['name']; 
     echo "<option value=\"option$count\">" . $name . "</option>"; 
     $count++; 
     } 
     ?> 
    </select> 
</div> 
<div id="option1" class="box"> 
     <div class="content"> 

     <?php 
     $sql = mysqli_query($dbConnection, "SELECT t.id, t.topic FROM topic t JOIN product p ON p.id = t.p_id WHERE p.name='Hello'"); 
     ?> 

     <div class="styled-select"> 
     <select name="topic" id="topic"> 
      <option value="optiont0" selected="selected">Select a topic for Hello...</option> 
      <?php 
      while ($row = mysqli_fetch_array($sql)) 
      { 
      echo "<option value=\"optiont$count\" name=\"topic[]\">" . $row['topic'] . "</option>"; 
      $count++; 
      } 

      ?> 

     </select> 
     </div> 
     <div class="divtopic"></div> 

     <div class="divsubtopic"> 
     </div> 
    </div> 
    </div> 

TIA对您有所帮助。

+0

我在HTML中看不到'$(#product)'元素。 – Manolo

+0

添加了产品元素。 –

+0

你有没有CSS规则:'.box {display:whatelse!important;}'? – Manolo

回答

0

我最终只是向必要的div添加一个空字符串。

$('.divtopic').html(''); 
$('.divsubtopic').html(''); 

诀窍。现在,当更改最顶层(产品)选择时,下面的div将清除。也许不是最高效的(???),但它的工作原理!