-1

フォームが送信された場所から現在のページにとどまろうとしています。しかし、どういうわけかそれは機能していません。インターネットでいくつかのコードの平和を見つけて、まとめました。

これは process.php ファイルです。

<?php
// Get Data    
$name = strip_tags($_POST['name']);
$email = strip_tags($_POST['email']);
$phone = strip_tags($_POST['phone']);
$subject = strip_tags($_POST['subject']);
$message = strip_tags($_POST['message']);

// Send Message
mail( "email@domain.com", "Contact Form testttt",
"Name: $name\nEmail: $email\nPhone: $phone\nWebsite: $url\nMessage: $message\n",
"From: Forms testtttttttt" );
?>

残りのコード、html、javascript は jsfiddle にあります: jsfiddled コード

    $(function(){
        $('#contact').validate({
        submitHandler: function(form) {
                $(form).ajaxSubmit({
                url: 'process.php',
                success: function() {
                    $('#contact').hide();
                    $('#contact-form').append("<p class='thanks'>thanks test.</p>")
                    }
                });
            }
        });         
    });

今何が起こっているかについて言及するのを忘れていました。process.php ページにリダイレクトされます。

4

3 に答える 3

10

jQuery.ajax()関数を使用して、ページを更新せずにフォームを送信します。次のようなことをする必要があります:

test.php:

<script type="text/javascript" src="jquery-version.js"></script>
<script type="text/javascript" src="ajaxform.js"></script>

<form action='process.php' method='post' class='ajaxform'>
 <input type='text' name='txt' value='Test Text'>
 <input type='submit' value='submit'>
</form>

プロセス.php:

<?php
      // Get your form data here in $_POST
?>

ajaxform.js

jQuery(document).ready(function(){

    jQuery('.ajaxform').submit( function() {

        $.ajax({
            url     : $(this).attr('action'),
            type    : $(this).attr('method'),
            data    : $(this).serialize(),
            success : function( data ) {
                         alert('Form is successfully submitted');       
                      },
            error   : function(){
                         alert('Something wrong');
                      }
        });

        return false;
    });

});
于 2012-05-13T10:29:16.377 に答える
6

204 HTTP ステータスを返すか、フォームを送信する代わりに JavaScript を使用してリクエストを行う必要があります (これは Ajax と呼ばれ、jQuery チュートリアル ページからリンクされたテーマに関する多数のチュートリアルがあります)。

于 2012-05-13T10:06:55.110 に答える
-1

これは、開始するためのリンクです。

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

于 2012-05-13T10:06:28.793 に答える