Как сделать обработку запроса в php и через ajax отдавать обработанный ответ?

Собственно есть форма
<form id="formx">
        <legend>Test From</legend>
        <label for="name">Название:</label>
        <input id="name" name="data" value="" type="text">
        <input value="Send" type="submit">
    </form>

скрипт который обрабатывает форму
<script type="text/javascript" language="javascript">
        $('form#formx').on('submit', function(e) {
          e.preventDefault();
          var msg   = $(this).serialize();
            $.ajax({
              type: 'POST',
              url: 'res.php',
              data: msg,
              success: function(data) {
                //в data должен быть ответ сервера в формате JSON
                var response = JSON.parse(data); //массив в котором ваши данные
                var html='<ul>';
                for(var i in response)html+='<li>'+response[i].russian+'</li>';
                html+='</ul>';
                $('#results').html(html);
                  // i - номер объекта, {key} - ваш ключ из массива
              },
              error:  function(xhr, str){
                    alert('Возникла ошибка: ' + xhr.responseCode);
                }
            });
      });
    </script>

результат после ajax выводится сюда
<div id="results">Вывод</div>
Сам обработчик файл res.php
$array = array();

$ch = curl_init();
$url = 'http://shikimori.org/api/animes/search?q='.$_POST['data'];
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERAGENT, "User Agent");
if ($content = curl_exec($ch)) {
$array = json_decode($content, true);
}
curl_close($ch);

print($content);

что надо прописать в javascript выше
<div id="results">Вывод</div>
, чтобы в данный div id вывести ответ, который я хочу прописать в res.php например:
вместо print($content);
прописать
foreach($array as $row) {
  $name = $row["name"];
  $russian = $row["russian"];
  echo "$name // $russian<br>";

}
  • Вопрос задан
  • 2228 просмотров
Решения вопроса 1
@Silm
Данные которые вы хотите получить в ответ на AJAX запрос надо поместить в массив, преобразовать в формат JSON (php.net/manual/en/function.json-encode.php ) и вывести на экран с помощью print или echo. Таким образом строка с данными в JSON формате попадет в переменную data в блоке success и вы сможете обработать данные и вывести в нужном формате пользователю.

Либо, вы можете сформировать необходимый HTML сразу в PHP обработчике, вывести его на экран, HTML попадет в переменную data в блоке success. Теперь можно сразу отобразить HTML в нужном блоке.

jquery.page2page.ru/index.php5/Ajax-%D0%B7%D0%B0%D...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы