Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 表单提交未显示成功消息_Php_Jquery_Html_Echo_Form Submit - Fatal编程技术网

Php 表单提交未显示成功消息

Php 表单提交未显示成功消息,php,jquery,html,echo,form-submit,Php,Jquery,Html,Echo,Form Submit,我的联系方式有问题,虽然邮件已成功发送到电子邮件,但没有给出成功指示。对于用户来说,表单似乎已断开,因为当按下提交按钮时,页面将保持不变。此页面是使用Themeforest模板构建的,但作者无法提供解决方案。我希望有人能给我指出正确的方向 以下是我收到的股票“contact send.php”文件: <?php $names = $_POST['names']; $email = $_POST['email_address']; $comment = $_POST['comment

我的联系方式有问题,虽然邮件已成功发送到电子邮件,但没有给出成功指示。对于用户来说,表单似乎已断开,因为当按下提交按钮时,页面将保持不变。此页面是使用Themeforest模板构建的,但作者无法提供解决方案。我希望有人能给我指出正确的方向

以下是我收到的股票“contact send.php”文件:

<?php


$names = $_POST['names'];
 $email = $_POST['email_address'];
 $comment = $_POST['comment'];
 $to ='to@email.com';

 $message = "";
 $message .= "*Name: " . htmlspecialchars($names, ENT_QUOTES) . "<br>\n";
 $message .= "*Email: " . htmlspecialchars($email, ENT_QUOTES) . "<br>\n";
 $message .= "*Comments: " . htmlspecialchars($comment, ENT_QUOTES) . "<br>\n";
 $lowmsg = strtolower($message);

 $headers = "MIME-Version: 1.0\r\nContent-type: text/html; charset=iso-8859-1\r\n";
 $headers .= "From: \"" . $names . "\" <" . $email . ">\r\n";
 $headers .= "Reply-To: " .  $email . "\r\n";
 $message = utf8_decode($message);  mail($to, "Note from the Contact Form", $message, $headers);

 if ($message){
        echo 'sent';
 }else{
      echo 'failed';
 }
?>
如果您需要,这里是实时站点:

任何帮助都将不胜感激

在表单HTML之前添加

应该是:

<div id="success"></div>
<form id="contact-form" name="contact-form" action="" method="post">
    [...]
</form>

[...]

我浏览了一下源代码,发现没有一个id为“#success”的元素

因此,将html消息添加到#success元素的这段代码无法实现这一点,因为该元素实际上并不存在:

 if (msg == 'sent'){
     $('#success').html('Message sent!');
     $('#contact-form [name="contact-names"]').val('');   
     $('#contact-form [name="contact-email"]').val('');
     $('#contact-form .contact-commnent').val('');
 }else{
     $('#success').html('Mail Error. Please Try Again.!')    ;   
 }
要回答您在评论中提出的关于删除成功提交后收到的错误消息的其他问题,请执行以下操作

向span添加额外的类,如下面的示例所示

<span class="email-required error-message"></span>
<span class="name-required error-message"></span>
<span class="comment-required error-message"></span>
因此,在表单标记上方添加一个带有#success id的div元素,您应该会很好


希望有帮助。

是否有id为“success”的元素?您没有在代码中显示一个,这可能是它从未显示的原因…谢谢。我现在看到了信息。另外,如何删除电子邮件验证。如果未输入有效电子邮件,则不会显示任何消息。一旦输入了有效的电子邮件,“Message Sent!”就会出现。在我的回答中添加了解决方案。希望有帮助。感谢您的快速响应。这是完全删除验证还是隐藏错误消息?我认为理想情况下,我希望设计此表单,以便在字段(即接受电子邮件或电话号码的字段)中输入任何值,而不会出现任何提交错误。我真的很感谢你的努力和时间。我想我已经明白了。无论如何,谢谢你。
 if (msg == 'sent'){
     $('#success').html('Message sent!');
     $('#contact-form [name="contact-names"]').val('');   
     $('#contact-form [name="contact-email"]').val('');
     $('#contact-form .contact-commnent').val('');
 }else{
     $('#success').html('Mail Error. Please Try Again.!')    ;   
 }
<span class="email-required error-message"></span>
<span class="name-required error-message"></span>
<span class="comment-required error-message"></span>
if (msg == 'sent'){
     $('#success').html('Message sent!');
     $('#contact-form [name="contact-names"]').val('');   
     $('#contact-form [name="contact-email"]').val('');
     $('#contact-form .contact-commnent').val('');
     $('.error-message').empty(); // clears all of the current error messages on success
 }else{
     $('#success').html('Mail Error. Please Try Again.!')    ;   
 }