2010-03-14 5 views
0

У меня есть другой php-выход на вкладках на основе jQuery. Этот вывод формируется из базы данных и состоит из нескольких <div>. Каждый раз, когда я нажимаю любую вкладку, он отправляет запрос AJAX скрипту php, который выполняет запрос «SELECT» и возвращает результат в ответ на запрос AJAX с вкладки.jQuery DOM-манипуляция

$(document).ready(function() { 

    $('ul.tabs li').css('cursor', 'pointer'); 

    $('ul.tabs.tabs1 li').click(function(){ 
     var thisClass = this.className.slice(0,2); 
     $('div.t1').hide(); 
     $('div.t2').hide(); 
     $('div.t3').hide(); 
     $('div.t4').hide(); 
     $('div.' + thisClass).show('fast'); 
     $('ul.tabs.tabs1 li').removeClass('tab-current'); 
     $(this).addClass('tab-current'); 
     var data = thisClass; 

     $.ajax({ 
      type:"GET", 
      url:"handler.php?name="+data, 
      data:data, 
      success:function(html) { 
      $('div.' + thisClass).html(html); 
      } 
     }); 
     return false; 
    }); 
}); 

//Server-side PHP script: 

<?php 

$name = $_GET[name]; 
switch ($name) { 
    case "t1": 
    query_and_output_1(); 

    case "t2": 
    query_and_output_2(); 

    // etc... 
} 
?> 

Проблема состоит в том, что первая закладка содержит вывод, который должен быть во втором и третьем из них, а второй также содержит третий выход вкладок.

Извините за такой мутный вопрос, я работал с сервером, и, к сожалению, я еще не знаком с DOM и jQuery.

Спасибо.

ответ

3

Проблема не в вашем JQuery, но в вашем PHP коде ..

вам нужно сломать после каждого случая в коде коммутатора. В противном случае все последующие случаи получить казнены ..

так

switch ($name) { 
    case "t1": 
    query_and_output_1(); 
    break; 

    case "t2": 
    query_and_output_2(); 
    break; 

правильный путь ..
ссылка: http://php.net/manual/en/control-structures.switch.php

+0

Да, вы правы. Спасибо. – ufw

+1

Классическая ошибка. –