пустой алерт выводит
|
Ну значит ваш 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, время: 21:33. |