Как через echo в php передать несколько свойств объекту javaScript?

Добрый вечер, подскажите как мне вывести через echo в php несколько свойств объекту javaScript?
Отправляю данные на сервер через ajax:

$.ajax({
      url: "./form/formprocessor.php",
      type: 'POST',
      data: payload,
      dataType: 'json',
      crossDomain: true
    }).done(function() {
      data.success = true;
      afterSubmit(data);
    }).fail(function() {
      afterSubmit(data);
    });


в случае успешной отправки через echo объекту data передается echo '{"success":true}';
в случае не успешной отправки echo '{"success":false}';
как мне сделать чтобы выводилось еще свойство CaptchaError: false ?

echo '{"success":true}'; - первое свойство
echo '{"CaptchaError":false}'; - второе свойство, если я делаю так, (два echo) то второе свойство не добавляется в объект.
  • Вопрос задан
  • 424 просмотра
Решения вопроса 2
delphinpro
@delphinpro Куратор тега PHP
frontend developer
$response = [
  'success' => true,
  'CaptchaError' => false,
];
echo json_encode($response);

// старый синтаксис
$response = array(
  'success' => true,
  'CaptchaError' => false,
);
echo json_encode($response);


ну или прямо в лоб
echo '{
  "success" : true,
  "CaptchaError" : false
}';

Хотя это дико не удобно, и я так писать не рекомендую.
Ответ написан
@VyacheslavY Автор вопроса
$.ajax({
      url: "./form/formprocessor.php",
      type: 'POST',
      data: payload,
      dataType: 'json',
      crossDomain: true,
      success: function(done) {
          data.success = done.success;
          data.captchaError = done.captchaError;
      afterSubmit(data);
    },
      error: function() {
      afterSubmit(data);
    }
    });
  }

использовал метод success вместо done так-как success позволяет вывести значения из php, а из php выводил так, как подсказал Silm :
echo '{
  "success" : true,
  "CaptchaError" : false
}';
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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