0 / 0 / 1
Регистрация: 03.04.2014
Сообщений: 72
1

зависимые списки select, где ошибка?

06.05.2014, 18:52. Показов 489. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый вечер! Пытаюсь сделать зависимые списки select и видимо где-то ошибка. Так как я только разбираюсь в ajax, не могу понять где она. Помогите, пожалуйста. Мне кажется, что ошибка где-то в запросе, т.к. при выборе категории выходит alert "При выполнении запроса произошла ошибка " Но что именно не так с запросом?
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<!-- Форма для динамических списков -->
    <form action="" method="post" id="dynamic_selects">
        <div class="row">
            <label for="kat">Категория</label>
            <select id="kat">
                <option value="0">Выберите из списка</option>
                <?php 
                     for($i=0;$i<$kolvo_kat;$i++)
      {
             $stroka_kat=mysql_fetch_assoc($dannye_kat); 
              $sel='';
              if($stroka_kat['kid']==$kat_sel)
              {
              $sel=' selected="selected"';
              }
              echo '<option value="'.$stroka_kat['kid'].'"'.$sel.'>'.$stroka_kat['kname'].'</option>';
      }                
                  
                        ?>
            </select>
        </div>
        <div class="row">
            <label for="tip">Тип</label>
            <select id="tip" disabled>
                <option value="0">Выберите из списка</option>
            </select>
        </div>
        
    </form>
Запросы
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
$stroka_zaprosa_kat="SELECT * FROM  kat";
        $dannye_kat=mysql_query($stroka_zaprosa_kat, $connect) or die(mysql_error()) ; 
        $kolvo_kat=mysql_num_rows($dannye_kat); 
        $kat_sel="";
        if(isset($_POST['kat']))
        {
            $kat_sel=$_POST['kat'];
        }
 
 
$tip = $mysqli->query("SELECT *
            FROM  `tip`
            WHERE  `id_kat` =  '".$_POST['kat_id']."'");       
        $arr = array();
        while($row = mysqli_fetch_assoc($tip)){
           $arr[] = array($row['tid'] => $row['tname']);
        }
        return $arr;
    
 
if (!isset($_POST['query']) || !$_POST['query']) {
    exit("Нет данных определяющих тип запроса");
}
else {
    
    $query = trim($_POST['query']); 
    // Определяем тип запроса
    switch($query) {
    case 'getTip':  
        // Формируем массив с ответом
        
        $result = NULL;
        $i = 0;
        foreach ($arr as $tip_id => $tip) {
            $result[$i]['tip_id'] = $tip_id;
            $result[$i]['tip'] = $tip;
            $i++;
        }
        
    break;
    
    default:
        // Если данные не определены
        $result = NULL;
    break;
    }
}
 
// Преобразуем данные в формат json, чтобы их смог обработать JavaScript-сценарий, приславший запрос
echo json_encode($result);
Скрипт
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
(function () {
    
    "use strict";
    
    
    jQuery(function () {
        
        $( '#kat' ).change(function () {
            
            $( '#tip').find( 'option:not(:first)' ) 
                .remove()                   
                .end()      
                .prop( 'disabled',true );       
            
            var kat_id = $( this ).val();
            
            if (kat_id == 0) { return; }
            
            $.ajax({
                type: "POST",   
                url: "query.php",   
                dataType: "json",   
                data: "query=getTip&kat_id=" + kat_id,  
                error: function () {    
                    alert( "При выполнении запроса произошла ошибка :(" );   
                },
                success: function ( data ) {
                    
                    for ( var i = 0; i < data.length; i++ ) {
                        
                        $( '#tip' ).append( '<option value="' + data[i].tip_id + '">' + data[i].tip + '</option>' );
                    }
                    
                    $( '#tip' ).prop( 'disabled', false );  
                }
            });
        });
    }); 
})();
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.05.2014, 18:52
Ответы с готовыми решениями:

AJAX: Зависимые списки
Доброго времени суток. У меня на сайте есть выбор из списка факультетов (select) который...

Зависимые списки. Получение value и id
При решении задачи двух зависимых раскрывающихся списков столкнулся с проблемой. Код полностью...

Зависимые списки и cuSel! кто реализовывал?
Доброго времени суток, Уважаемые! Понадобилось мне написать выбор &quot;страна | область | город&quot;, но...

Зависимые списки
Добрый день! подскажите, есть такой код. Необходимо, чтобы было 4 списка по порядку зависимые от...

0
06.05.2014, 18:52
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.05.2014, 18:52
Помогаю со студенческими работами здесь

Значение select из сессии + зависимые списки из бд
Здравствуйте! Я дилетант, но стараюсь учиться настолько, насколько удаётся моему гуманитарному...

вывожу зависимые списки по средствам технологии AJAX, застрял с <select disabled>
У меня есть два селекта и когда первый селект не выбран, то у второго стоит атрибут desibled. Когда...

Зависимые списки, снова списки и проблема
&lt;div class=&quot;t-product__option js-product-option newselect&quot;&gt; &lt;div class=&quot;t-product__option-title...

зависимые списки
как сделать так, чтобы при выборе значения в одном выпадающем списке появлялась, зависимая от...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru