0

我有一个完美的表格。但是,当成功提交消息时,用户会被重定向到一个新页面,其中包含我设置的“成功”消息。相反,我希望成功消息显示在表单旁边的 div 中,并在用户想要发送另一条消息时重置表单。同样,我也希望在失败时让我的“错误”消息显示在同一个 div 中。希望有人可以帮助我的 if/else 语句使这成为可能。

这是我的 HTML:

<div id="contact-area">

<form id="theform" name="theform" method="post" action="feedback.php">
<input type="hidden" name='sendflag' value="send">

<p>
<label for="Name">Name:</label>
<input type="text" name="name" id="name" value="" />
</p>

<p>
<label for="Email">Email:</label>
<input type="text" name="email" id="email" value="" />
</p>

<p>
<label for="Message">Message:</label><br />
<textarea name="message" rows="20" cols="20" id="message"></textarea>
</p>

<p>
<input type="submit" name="submit" value="Submit" class="submit-button" />
</p>

</form>     
</div>

<div class="message">
<p class="submitMessage"></p>
</div>

这是我的PHP:

<?php

$mail_to_send_to = "myemail@gmail.com";
$your_feedbackmail = "noreply@domain.com";

$sendflag = $_REQUEST['sendflag'];
if ( $sendflag == "send" )
{
$name = $_REQUEST['name'] ;
$email = $_REQUEST['email'] ;
$message = $_REQUEST['message'] ;
$headers = "From: $name" . "\r\n" . "Reply-To: $email" . "\r\n" ;
$a = mail( $mail_to_send_to, "Feedback form", $message, $headers );
if ($a)
{
print("Message was sent, you can send another one");
} else {
print("Message wasn't sent, please check that you have changed emails in the bottom");
}
}

?>
4

2 回答 2

0

如果我正确理解您的问题,您希望永远不要离开页面,而是div根据成功的表单提交来显示或消失。如果是这样,看起来您将不得不使用 AJAX。幸运的是,jQuery 内置了这个!我建议如下:

$.post("url.php", { option1: value1, option2: value2 }, function(data) {
    if(data != '')
        $('#theDiv').html("Success!");
});

有关更多信息,请阅读此处的文档

于 2012-12-20T06:10:19.617 回答
0

在此处阅读并遵循示例:jQuery AJAX

你基本上会做这样的事情。

$.ajax({
  url: /url/to/your/php,
  data: dataObjectPosting
  success: function(data){
    //the data object will have your PHP response;
    $('#divid').text('success message');
  },
  error: function(){
    alert('failure');
  }
});

请记住,成功只是意味着 HTTP 200,不一定是您的 PHP 代码如您所见那样成功运行。

于 2012-12-20T06:12:11.190 回答