пустой алерт выводит
|
Ну значит ваш php скрипт ничего не возвращает. Где у вас там вывод данных то? В том коде, который вы приводили в первом посте я не вижу где данные там выводятся.
|
у меня что-то с массивом, данные в массив из бд заводит, а из массива не выводит
|
$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; |
Это я уже видел. Где сам вывод данных то? echo там или еще что-нить в этом духе?
|
<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> |
Это всё в query.php? Вы понимаете, что скрипт, к которому обращаетесь аяксом должен выводить только данные в JSON формате, а не отдавать целую страницу?
|
нет, это в отдельном файле в index, а к нему подключены query.php, скрипт и библеотека jQuery
вот как полностью выглядит query.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']; } $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); |
return $arr; А вот это зачем? Оно же при выполнении скрипта его завершит и выполнение не дойдет до echo. |
я массив поправила, теперь отдельно он работает, но без return $arr;, но если я вставляю его в код и убираю return, то выводится "Нет данных определяющих тип запроса"
$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']; } return $arr; В чем может быть дело? |
Часовой пояс GMT +3, время: 09:48. |