#javascript #json #ajax
#javascript #json #ajax
Вопрос:
Это вопрос новичка. Я никогда не изучал JS, и мне очень сложно делать простые вещи..
У меня есть PHP-скрипт, который получает данные через JS с веб-сайта. PHP-скрипт обновляет базу данных и возвращает результат успешного выполнения с помощью следующей строки кода:
echo json_encode(array('success'=>'true'));
Я настроил функцию, которая что-то делает, когда возвращается «успех»:
success: function(){
....
}
Теперь я хочу немного расширить его. Мой PHP-скрипт также вернет сообщение, которое должно быть выведено в DIV.
Это будет выводить что-то вроде:
«ошибка-сообщение об ошибке» => «Не удалось записать в БД». или «сообщение об успехе» => «Данные успешно сохранены в БД».
Я действительно не знаю, как проверить, являются ли возвращаемые данные «сообщением об ошибке» или сообщением об успехе. Я не знаю, как получить строку msg, а также как отобразить ее в определенном DIV.
Не могли бы вы мне помочь?
Спасибо!
Ответ №1:
Вместо использования success_msg
and error_msg
вы могли бы просто использовать status_msg and status
(в вашем PHP-скрипте).
status_msg
будет содержать текст. статус будет содержать "success" or "error"
. Вы также можете использовать любой другой вид маркера, который вам нравится.
Чтобы проверить статус сообщения в Javascript,
var response = JSON.parse(data);
console.log(response.status_msg); //display the message
if(response.status == "success"){
//do something
}
else {
//do something
}
После получения сообщения вы можете отобразить его в DIV с помощью
document.getElementById("message").innerHTML = response.status_msg;
HTML-файл будет выглядеть так
<div id="message">
</div>
Комментарии:
1. Спасибо за код! Не могли бы вы, пожалуйста, сказать мне, что вставить сюда: (<response_from_server>)? Я не уверен, как реализовать bootstrap-разметку в вашем примере. Я хочу использовать разметку оповещений, например: <div class=»alert alert-danger» role =»alert»>…</div> Если сообщение является ошибкой, оно должно использовать «alert-danger» и «alert-succes» при успешном завершении. Я также не знаю, поместил ли я ваш код внутри указанной функции успеха в моем главном вопросе 😉
2. Замените <response_from_server> переменной Javascript, которая содержит ответ, полученный с сервера. Для использования разметки начальной загрузки вам необходимо использовать функции addClass и removeClass из DOM API. Кроме того, предложенный мной код должен входить в вашу функцию. Если я могу спросить, как ваш код вводит функцию успеха? Это обработчик, предоставляемый какой-либо библиотекой?