Не установлен флажок проверки возвращает ошибку [объект объекта] - PullRequest
0 голосов
/ 03 мая 2018

Я использую jquery для отправки отмеченных и непроверенных флажков в форму проверки PHP. Используется jquery:

 'updates'  : $('input:checkbox[name=updates]').is(':checked') ? 1 : 0

Я думаю, что, должно быть, неверно проверяю, так как это возвращает [объектный объект], как лучше всего разрешить его?

Форма проверки JavaScript, используемая для отправки formData

function validateForm() {
document.getElementById('status').innerHTML = "Sending...";
formData = {
'name'     : $('input[name=name]').val(),
'surname'  : $('input[name=surname]').val(),
'email'    : $('input[name=email]').val(),
'subject'  : $('input[name=subject]').val(),
'message'  : $('textarea[name=message]').val(),
'updates'  : $('input:checkbox[name=updates]').is(':checked') ? 1 : 0
};


$.ajax({
url : "mail.php",
type: "POST",
data : formData,
success: function(data, textStatus, jqXHR)
{

$('#status').text(data.message);
if (data.code) //If mail was sent successfully, reset the form.
$('#contact-form').closest('form').find("input[type=text], 
textarea").val("");
},
error: function (jqXHR, textStatus, errorThrown)
{   
$('#status').text(jqXHR);
}
});

}

Проверка PHP на стороне сервера

<?php
$name = $_POST['name'];
$surname = $_POST['surname'];
$email = $_POST['email'];
$message = $_POST['message'];
$subject = $_POST['subject'];
$updates= $_POST['updates'];
header('Content-Type: application/json');

if ($updates){
 print json_encode(array('message' => 'Checkbox cannot be empty', 
                        'code' => 0));
} else{

exit();
}

$content="From: $name \nSurname: $surname \nEmail: $email \nMessage: 
$message";
$recipient = "*******@gmail.com";
$mailheader = "From: $email \r\n";
mail($recipient, $subject, $content, $mailheader) or die("Error!");
print json_encode(array('message' => 'Email successfully sent!',
'code' 
=> 
1));
exit();
?>

1 Ответ

0 голосов
/ 03 мая 2018

Вы получаете неправильное значение, потому что на $updates == 1 вы напечатали 2 разных JSON. Измените свой PHP-скрипт с этим.

<?php
$name = $_POST['name'];
$surname = $_POST['surname'];
$email = $_POST['email'];
$message = $_POST['message'];
$subject = $_POST['subject'];
$updates= $_POST['updates'];
header('Content-Type: application/json');

if ($updated == 0){
 print json_encode(array('message' => 'Checkbox cannot be empty', 
                        'code' => 0));
} else{
$content="From: $name \nSurname: $surname \nEmail: $email \nMessage: 
$message";
$recipient = "*******@gmail.com";
$mailheader = "From: $email \r\n";
mail($recipient, $subject, $content, $mailheader) or die("Error!");
print json_encode(array('message' => 'Email successfully sent!',
'code' 
=> 
1));
}
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...