在下面的主PHP文件中有一个JSON数组。如您所见,$firstname_error
和$lastname_error
是我打算传递给AJAX的变量,以使其在两个单独的div中显示。此刻什么都没有出现,也不确定为什么。非常感谢任何见解。
PHP和JSON
if (empty($_POST["City"])) {
$city_error = "A city required";
}
if (empty($_POST["E-mail"])) {
$email_error = "E-mail is required";
}
echo json_encode(array("city" => $city_error, "email" => $email_error));
AJAX
$(document).ready(function () {
$(".form").submit(function (e) {
e.preventDefault();
$.ajax({
type: "POST",
url: "destination.php",
data: $(this).serialize(),
dataType: 'json',
cache: false,
success: function (data) {
if (data.trim() != '') {
$('.error4').html(data.city);
$('.error5').html(data.email);
}
},
error: function () {
}
});
});
});
.error4
和.error5
当前不显示任何内容。 最佳答案
由于您具有dataType: 'json',
,传递给success
函数的数据变量将成为对象,因此您无法使用trim()
。
要检查响应中是否存在该值,可以在data
上使用hasOwnProperty:
success: function (data) {
$('.error4').text(data.hasOwnProperty('city') ? data.city : '');
$('.error5').text(data.hasOwnProperty('email') ? data.email : '');
},
希望这可以帮助!