Задать вопрос
eprivalov
@eprivalov
Учусь

Как правильно получить ответ от сервера после ajax запроса?

Делаю ajax запрос таким образом:

$(function(){
      //Получаем страну и область из БД
        $('#city1').blur(function(){
          var inputData = $("#city1").val();
          //alert(inputData);
          $.ajax({
                  url: "city-search.php",
                  type: "POST",
                  data: inputData,
                  dataType: "html",
                  success: function(data){
                      // Получаем ответ с сервера с помощью ajax
                      var data = $(data).filter("p.country");
                      // var data = $(data).find("p.country");
                      alert(data);
                      alert(data.responseText);
                      $("div.ajax").append(data);
                  },
                  error: function (jqXhr, textStatus, errorThrown) {
                      alert("Ошибка '" + jqXhr.status + "' (textStatus: '" + textStatus + "', errorThrown: '" + errorThrown + "')");
                  },
                  complete: function () {
                      
                  }
              });
          return false;
        });
      });


PHP файл, которому отправляем данные:

require_once("inc/mysql.php");
	sleep(3); //Для ajax запроса, потом удалить
	if (isset($_POST['city1'])) {
		$city1 = $_POST['city1'];
	}
	if (isset($city1)) {
		$query = "SELECT id_city, id_region, id_country FROM cities WHERE city_name_ru LIKE '$city1'";
		$result = mysqli_query($link, $query);// or trigger_error(mysql_error($link)." ".$query);
		$row = mysqli_fetch_array($result);
		$country = $row['id_country'];
		echo $country;
		echo '<br>';
		$region = $row['id_region'];
		echo $region;
		echo '<br>';
		$query1 = "SELECT country_name_ru FROM countries WHERE id_country = '$country'";
		$result1 = mysqli_query($link, $query1);// or trigger_error(mysql_error($link)." ".$query);
		$row1 = mysqli_fetch_array($result1);
		echo '<p class=\'country\'>Страна '.$row1['0'].'</p>';
		echo '<br>';
		$query2 = "SELECT region_name_ru FROM regions WHERE id_region = '$region'";
		$result2 = mysqli_query($link, $query2);// or trigger_error(mysql_error($link)." ".$query);
		$row2 = mysqli_fetch_array($result2);
		echo '<p class=\'reqion\'>Область '.$row2['0'].'</p>';
	}


Вот ответ, который я получаю:

Ответ пустой вообще, а до этого приходили PHP ошибки, что переменная city1 не определена. Что я делаю не так? Подскажите, пожалуйста!
  • Вопрос задан
  • 8123 просмотра
Подписаться 3 Оценить 1 комментарий
Пригласить эксперта
Ответы на вопрос 2
Где вы вычитали этот говно код?...

- Выше написали - нужно отправлять массив данных, а не просто переменную.
- Нет проверки, что входящий на сервер запрос это ajax.
- Много выводов echo, а должен быть один.
- Нет вывода пустого ("пробельного") запроса при неподходящих данных.
Ответ написан
Playmore
@Playmore
Опытный разработчик
$.ajax({
                  url: "city-search.php",
                  type: "POST",
                  data: {'city1':$("#city1").val()}
....
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы