#php #jquery #ajax #ajaxform
#php #jquery #ajax #ajaxform
Вопрос:
Я отправляю php-форму с помощью jquery ajax, но при получении значения параметра функции обратного вызова success значение параметра содержит ключ ввода перед значением, возвращаемым с сервера.
Для обхода я использую метод includes.
Кто-нибудь знает, почему клавиша enter вставлена перед значением, возвращаемым с сервера?
$.ajax({
type: "POST",
url: "_action.php",
data: dataString,
success: function(result) {
n = result.includes("success");
if (n) {
grecaptcha.reset();
$("#spinner-contact").remove();
$('#success_msg').html("<img class='img-fluid aligncenter mb-3' id='checkmark' src='media/img/form_submitted.jpg' />");
}
else {
grecaptcha.reset();
$("#spinner-contact").remove();
$('#success_msg').html("<div class='mt-3'><strong><h1 class='alert alert-warning'>Contact failed!</strong> Please submit again.</h1></div>");
}
}
});
$statement = runQPs("INSERT INTO my_guestbook(title, url, path, pos, content, isactive, date) VALUES(
?, ?, ?, ?, ?, ?, ?
)",[$name, $email_from, $address, $telephone, $comments, 0, $now]);
// Insert contact success or fail
if($statement->affected_rows === 0) {
$result = "fail";
}
else {
$result = "success";
}
echo $result;
Комментарии:
1. Используйте формат JSON
Ответ №1:
В PHP-коде вы можете возвращать значение следующим образом:
return json_encode(result);
В файле JS:
success: function(result) {
// this will be your response from PHP code
// add you'r IF statement here
console.log(result);
}
Комментарии:
1. Да, похоже, что я должен закодировать данные в PHP, а затем проанализировать их в JS. Спасибо.
Ответ №2:
я думаю, вы можете изменить свое «echo» в файле php, чтобы вернуть «json»
и в вашем ajax-коде:
n = result.includes("success");
Для
var response = result.message(name of return json);
Комментарии:
1. Я изменил на json, но у него все еще есть клавиша ввода.
Ответ №3:
После повторения переменной результата вы можете выполнить оператор примерно так.
echo $result;die;
или
die($result);
Комментарии:
1. Ответ такой же, как на прикрепленном изображении из моего первого поста выше.