0

Делаю 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 не определена. Что я делаю не так? Подскажите, пожалуйста!

7
  • До этого я получал в ответе ошибку - Error: Syntax error, unrecognized expression:
    – spoilt
    24 апр 2014 в 18:52
  • Если $_POST['city1'] не определен, то никакого вывода и не будет. Ваш кэп. В inputData в js должен оказать объект, сейчас там просто значение.
    – etki
    24 апр 2014 в 19:40
  • @Fike эту ошибку я уже исправил. Написал вот так - data: {'city1':inputData}. Ответ приходит с сервера, но ошибка <b>Error: Syntax error, unrecognized expression:</b> никуда не делась...
    – spoilt
    24 апр 2014 в 19:52
  • @eprivalov1 надо обновить jquery или (что лучше) пересылать в json: echo json_encode(array('country' => $country, 'region' => $region));
    – etki
    24 апр 2014 в 19:59
  • Мой совет: проверь отдельно php файл, выводит ли он что-нибудь без пост запроса. Затем проверь вывод js без фильтра.
    – ZooMka
    24 апр 2014 в 20:29

2 ответа 2

1

Делай просто.

в php файле убери все кроме if (isset($_POST)) { print_r($_POST) }

посмотришь в каком виде приходит в пхп. Потом уже через Echo или echo json_encode(array('country' => $country, 'region' => $region)); возвращай.

0

Я новичок в этом, но ты ведь отправляешь inputdata а в Php принимаешь city1, то есть надо if isset($_post[inputdata])

1
  • @benjibboy Исправил, но ничего не поменялось - ответ все равно пустой...
    – spoilt
    24 апр 2014 в 18:54

Ваш ответ

By clicking “Отправить ответ”, you agree to our terms of service and acknowledge you have read our privacy policy.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками или задайте свой вопрос.