javascript - 未选中的复选框验证返回 [object Object] 的错误
问题描述
我正在使用 jquery 将选中和未选中的复选框发送到 PHP 验证表单。使用的jquery是:
'updates' : $('input:checkbox[name=updates]').is(':checked') ? 1 : 0
我认为我必须验证错误,因为这会返回 [object Object] 解决他的最佳方法是什么?
用于发送 formData 的 javascript 验证表单
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();
?>
解决方案
你得到了错误的值,因为$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));
}
?>
推荐阅读
- java - if else 如何在 GZIPWrapper 中替换为 Optional.orElse?
- ios - IOS WKWebView - 隐藏网站页眉和页脚
- amazon-cloudformation - 使用 Fn::Select 在 Cloudformation 堆栈中创建输出
- angular - 列表 TypeScript 中的属性变量 - Angular
- android - 用surfaceview播放视频时出现问题
- python - 如何将 cv2 从 python 3.7 更改为 3.6
- mysql - 连接到 API 时解决错误 404
- php - 我在 php 中收到多维数组的未定义索引错误
- sql - 员工与其经理之间的时间依赖关系
- php - 我在 CodeIgniter 中使用什么命名空间来加载作曲家类?