За последние 24 часа нас посетили 17655 программистов и 1669 роботов. Сейчас ищут 1599 программистов ...

Ajax-запрос и возврат нескольких переменных от сервера.

Тема в разделе "JavaScript и AJAX", создана пользователем Arhitec, 17 окт 2017.

  1. Arhitec

    Arhitec Новичок

    С нами с:
    13 июл 2016
    Сообщения:
    43
    Симпатии:
    1
    Всем привет!
    У меня есть форма с отправкой данных через Ajax без перезагрузки страницы. После обработки данных на сервере выводится сообщение, которое сформированно на сервере. А вот как передать несколько переменных от сервера в ответ в JS для дальнейшей обработки, я не знаю.
    Подскажите, пожалуйста.
    Код:
    Код (Text):
    1. $(document).ready(function() {
    2. var regVr22 = "<div><img style='src='http://www.config.3440.aqq.ru/style/img/load.gif' alt='Отправка...' width='16' height='16'>Проверка...</div>";
    3.  
    4. $("#form-button-1").click(function(){
    5.         $("#loadBar").html(regVr22).show();
    6.      
    7.         var authlogin = $("#authlogin").val();
    8.         var authpass = $("#authpass").val();
    9.                
    10.         $.ajax({
    11.             type: "POST",
    12.             url: "authrequest.php",
    13.             data: {"authlogin": authlogin, "authpass": authpass},
    14.             cache: false,
    15.             success: function(data)
    16.             {
    17.                 var dataerror = '<?php echo $dataerror; ?>';
    18.                 $("#error").html(data).fadeIn(3000);
    19.  
    20. }});
    21. return false;
    22. });
    23. });
     
  2. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    На сервере формируйте ответ в json.
    Допустим, имеем массив
    PHP:
    1. $response=['message'=>'text', data=>[]]
    вставим нужные данные, и текст ответа для отображения на клиенте:

    PHP:
    1. $response['data']=['one'=>'test', 'two'=>'test'];
    2. $response['message']='message text';
    Дальше кодируем в json:
    PHP:
    1. $response = json_encode($request);
    Ставим соответствующий заголовок:
    PHP:
    1. header('Content-Type: application/json');
    И выодим разультат:
    PHP:
    1. echo $response;
     
    Arhitec нравится это.
  3. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.770
    Адрес:
    :сердА
    А это вот вовсе не обязательно, раз на то пошло. А, порой, и вовсе является причиной ошибок. JSON можно отдавать обычным ответом без заморочек.
     
    Arhitec нравится это.
  4. Arhitec

    Arhitec Новичок

    С нами с:
    13 июл 2016
    Сообщения:
    43
    Симпатии:
    1
    Благодарю, буду разбираться с написанным :)
    --- Добавлено ---
    Смысл в том, что я хочу кроме самих ошибок передать на клиента и количество ошибок.
     
  5. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    @Fell-x27, можно, если я от сервера жду только json и ничего кроме json почему бы не ставить?)).
    --- Добавлено ---
    Причиной каких ошибок?
     
  6. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.770
    Адрес:
    :сердА
    Клиент может по-разному воспринимать это дело. У того же жиквери долгое время была чехарда с этим заголовком и datetype: json.
    В итоге просто народ сошелся на том, что нахрен оно нужно это все, и что надо просто текстом слать, разницы никакой.
     
  7. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    Ну не знаю. Я шлю всегда json с соответствующим заголовком, проблем не было.