【问题标题】:Change PHP form that refreshes the page to Ajax?将刷新页面的 PHP 表单更改为 Ajax?
【发布时间】:2013-01-07 23:41:00
【问题描述】:

我正在构建的网站上有一个简单的 PHP 联系表。提交表单时,页面刷新,然后使用 PHP 在清除的联系表单下方显示成功消息。

有什么方法可以让页面不刷新并仍然通过 Ajax 显示 PHP 成功消息,我该怎么做?

我对 PHP 很陌生。这是我当前代码的一部分...

if ($nr != $sum)
header('Location: index.php?msg=wrong#contactform');
else

// send email 
$success = mail($EmailTo, $Subject, $Body, "From: <$Email>");


// redirect to success page 
if ($success){
header('Location: index.php?msg=sent#contactform');
}
else{
print "<meta http-equiv=\"refresh\" content=\"0;URL=index.php\">";
}

【问题讨论】:

    标签: php ajax


    【解决方案1】:

    您可能会发现这很有帮助。这是一个查询插件,可以轻松提交表单 ajax。 http://malsup.com/jquery/form/

    【讨论】:

    • 非常感谢。一个不错的简单入门方法。
    【解决方案2】:

    在调用页面上,尝试将成功消息插入 div 类似(使用 jquery)

    .done(function(){
    $('#somediv').html('Success yippy!!');
    })
    

    【讨论】:

      【解决方案3】:

      要实现这一点,您必须结合两种技术。 Javascript 在客户端,PHP 在服务器端。

      首先创建一个 HTML 表单和成功警报。

      <span class="formSubmitted">Your form was submitted!</span>
      
      <form>
      <input type="text" id="messageInput">
      <input id="submitButton" type="submit">
      </form>
      

      然后使用 jQuery(Javascript 框架),你提交这个表单。

      $("#submitButton").click(function(e){
         e.preventDefault();
         $.ajax({
            url : "myphpfile.php",
            type : "POST",
            data : {
               "message" : $("#messageInput").val() 
            },
            success: function(){
                $(".formSubmitted").fadeIn();
            }
         });
      
      });
      

      最后在 myphpfile 中,您可以通过以下方式检索消息变量:

      $message = $_POST['message'];
      

      【讨论】:

      • 感谢您,非常感谢。我暂时使用下面的插件,但当我有更多时间剖析和理解它时会使用你的代码。
      猜你喜欢
      • 2017-04-09
      • 2016-09-03
      • 2013-07-10
      • 2014-03-03
      • 2021-09-26
      • 2013-02-09
      • 2019-03-30
      • 1970-01-01
      相关资源
      最近更新 更多