Я разделила, но это не помогло. Теперь у меня 5 файлов. Добавила новое условие в query.php.
Теперь select второй становится активным, но параметры нужные не выводятся.
Вот что у меня получилось:
query.php
include('zapros.php');
// Проверяем наличие переменной, которая укажет данному сценарию какие именно данные нужны
if(isset($_POST['kat_id']))
{
if (!isset($_POST['query']) || !$_POST['query'])
{
exit("Нет данных определяющих тип запроса");
}
else {
// Сохраняем строку запроса данных в отдельной переменной
$query = trim($_POST['query']); // Очищаем от лишних пробелов
// Определяем тип запроса
switch($query)
{
case 'getTip': // Запрос на получение
// Сохраним в переменную значение выбранного типа транспорта
$kat_id = trim($_POST['kat_id']); // Очистим его от лишних пробелов
// Формируем массив с ответом
$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;
}
}
}
echo json_encode($result);
zapros.php
$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'];
}
if(isset($_POST['kat_id']))
{
$tip = $mysqli->query("SELECT *
FROM `tip`
WHERE `id_kat` = '".$_POST['kat_id']."'");
$arr = array();
while($row = mysqli_fetch_assoc($tip))
{
$arr[$row['tid']] = $row['tname'];
}
}
ну и скрипт остался прежним
(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 (xhr, status, error) {
alert( status + ' | ' + error );
}
, 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 );
}
});
});
});
})();