Javascript PHP表单未提交但未显示任何错误
我正试图建立一个非常简单的即将到来的联系表单页面。我已经上传了所有内容(单击“立即联系我们”按钮) 现在,当我填写信息并单击“发送”时,它会给我一条错误消息。我看不出任何错误,并将错误报告设置为on(可能在错误的位置),以下是php代码:Javascript PHP表单未提交但未显示任何错误,javascript,php,jquery,contact-form,Javascript,Php,Jquery,Contact Form,我正试图建立一个非常简单的即将到来的联系表单页面。我已经上传了所有内容(单击“立即联系我们”按钮) 现在,当我填写信息并单击“发送”时,它会给我一条错误消息。我看不出任何错误,并将错误报告设置为on(可能在错误的位置),以下是php代码: <?php ini_set('display_startup_errors',1); ini_set('display_errors',1); error_reporting(-1); if (isset($_REQUEST['name'],$_R
<?php
ini_set('display_startup_errors',1);
ini_set('display_errors',1);
error_reporting(-1);
if (isset($_REQUEST['name'],$_REQUEST['email'])) {
$name = $_REQUEST['name'];
$email = $_REQUEST['email'];
$message = $_REQUEST['message'];
$to = 'editedforstackoverflow';
$subject = 'Contact Request From Website';
$headers = "From: ".$name." <".$email."> \r\n";
$send_email = mail($to,$subject,$message,$headers);
echo ($send_email) ? 'success' : 'error';
}
?>
我真的看不出我犯了什么错误,任何帮助都将不胜感激 查看站点中的表单,您的
标记似乎缺少名称
和电子邮件
字段中的名称
属性:
他们需要有name=“name”
和name=“email”
,这样.serialize()
就可以获得这些值并将它们带到您的请求中。因此,反过来在PHP中,它们将在您的$\u请求中
下面是一个演示,演示我对那些缺少的name=”“
的人所说的话。我已经明确省略了字段3,以便您可以看到
因此,解决办法是。只需在这些标签上添加name=“name”
和name=“email”
表中的实际注释:
注意:只有“成功的控件”被序列化为字符串。由于未使用按钮提交表单,因此未序列化任何提交按钮值。要将表单元素的值包含在序列化字符串中,该元素必须具有name属性
您的if语句完全错误。
不能用
,
分隔两条语句,应该用|
或&&
分隔文章将让您熟悉这些运营商。
另外,
$\u请求
非常不安全。最好不要使用它们。下面解释了不使用它们的原因 谢谢大家!!那就是当你过于专注于让它看起来漂亮而不是让它工作时:)@Paranoia是的,你完全忘记了name=“”
很高兴这有帮助
$('#ajax-contact').on('submit', function() {
// Add text 'loading...' right after clicking on the submit button.
$('.output_message').text('Loading...');
var form = $(this);
$.ajax({
url: form.attr('action'),
method: form.attr('method'),
data: form.serialize(),
success: function(result) {
if (result == 'success') {
$('.output_message').text('Nachricht erfolgreich geschickt!');
} else {
$('.output_message').text('Da ist leider ein Fehler unterlaufen!');
}
}
});
// Prevents default submission of the form after clicking on the submit button.
return false;
});