JQuery DOM манипулирование - PullRequest
       12

JQuery DOM манипулирование

0 голосов
/ 14 марта 2010

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

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

Спасибо.

1 Ответ

3 голосов
/ 14 марта 2010

Проблема не в вашем 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...