2010-03-14 7 views
0

J'ai une sortie php différente dans les onglets basés sur jQuery. Cette sortie est formée à partir de la base de données et se compose de plusieurs <div>. Chaque fois que je clique sur un onglet, il envoie une requête AJAX au script php qui effectue une requête "SELECT" et renvoie le résultat en réponse à la requête AJAX de l'onglet.jQuery DOM manipulation

$(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... 
} 
?> 

Le problème est que le premier onglet contient sortie qui doit être en deuxième et troisième ainsi, le second contient également le troisième signal de sortie de l'onglet.

Désolé pour une telle question, je travaillais avec le côté serveur et malheureusement je ne suis pas encore familier avec DOM et jQuery.

Merci.

Répondre

3

Le problème est pas dans votre jQuery, mais dans votre code PHP ..

vous devez rompre après chaque cas dans le code de l'interrupteur. Sinon tous les cas ultérieurs sont exécutées ..

si

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

    case "t2": 
    query_and_output_2(); 
    break; 

est la manière correcte ..
Référence: http://php.net/manual/en/control-structures.switch.php

+0

Oui, vous avez raison. Je vous remercie. – ufw

+1

Erreur classique. –