如何在不刷新页面的情况下发送表单?

时间:2012-01-11 12:14:49

标签: php html html-email

我不懂PHP。

我不希望用户在发送表单后转到http://www.example.com/feedback-thanks.html。我想要的是发送按钮下面的文字或任何而不刷新页面

我删除了header( "Location: http://www.example.com/feedback-thanks.html" );但我没有收到电子邮件,用户被重定向到feedback.php ...... :(

HTML

<form method="post" action="feedback.php">
<input name="email" type="email"/>
<textarea name="message" id="feedback-textarea" autofocus="autofocus" required="required" ></textarea>
<button type="submit" id="feedback-button-send">send</button>
</form>

feedback.php

<?php
  $email = $_REQUEST['email'] ;
  $message = $_REQUEST['message'] ;

  mail( "abcde@gmail.com", "Subject Here",
    $message, "From: $email" );
  header( "Location: http://www.example.com/feedback-thanks.html" );
?>

4 个答案:

答案 0 :(得分:8)

您必须使用$.ajax()

这是我在其中一个应用中使用的

$('#submitSearch').click(function() {

        var formData = {
            searchData: $('#searchData').val(),
        };

        $.ajax({
            url: siteUrl + 'fetch/search',
            type: "POST",
            data: formData,
            cache: true,            
            beforeSend:function(){
                jQuery('#main').html('<div class="loading"><img src="' + siteUrl + 'resources/imgs/ajax-loader.gif" alt="Loading..." /></div>');
            },
            success: function(data) {
                jQuery('#main').empty();
                jQuery('#main').append(data);
            },
            error:function(x,e){
                if(x.status==0){
                    alert('You are offline!!\n Please Check Your Network.');
                }else if(x.status==404){
                    alert('Requested URL not found.');
                }else if(x.status==500){
                    alert('Internel Server Error.');
                }else if(e=='parsererror'){
                    alert('Error.\nParsing JSON Request failed.');
                }else if(e=='timeout'){
                    alert('Request Time out.');
                }else {
                    alert('Unknow Error.\n'+x.responseText);
                }
            }
        });
        return false;
    });

答案 1 :(得分:0)

我建议使用像jQuery这样的Javascript框架并使用它的AJAX函数。如果您使用Google,可以在互联网上找到很多教程。

jquery.com

开始

答案 2 :(得分:0)

  1. 可行性 - 以任何形式使用ajax - jQuery,plain等...见Google

  2. posibility - 使用name =“sender”创建隐藏的iframe并使用表单目标属性(我不确定它是否有效,但它可以在没有javascript的情况下工作)

答案 3 :(得分:0)

如果你想要我想要的东西,只需看一下本教程(带演示)

http://net.tutsplus.com/tutorials/javascript-ajax/submit-a-form-without-page-refresh-using-jquery/