2010-03-14 82 views
0

我在基于jQuery的选项卡中有不同的php输出。这个输出是由数据库构成的,它由几个<div>组成。每次我点击任何选项卡时,它会向执行“SELECT”请求的php脚本发送AJAX请求,并将结果作为对来自选项卡的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 2010-03-14 14:16:36

+1

经典错误。 – 2010-03-14 14:18:02