0

同じページに戻る前に、Ajax コードが PHP ファイルと通信できるようにしようとしています。

フォームに入力したいのですが、send がヒットするとすぐに AJAX コードと通信します。したがって、エンド ユーザーに成功または失敗のメッセージを返す前に、PHP ファイルと通信します。

Ajax コードは次のとおりです。

$(document).ready(function(){
    $(function() {  
        $(".submit").click(function() {  
            // validate and process form here
            var fname = $("#fname").val() ;
            var lname = $("#lname").val();
            var aemail = $("#aemail").val() ;
            var year = $("#year").val();
            var club = $("#club").val() ;
            var position = $("#position").val();
            var dataString = 'name='+ name + '&fname=' + fname + '&lname=' + lname + '&aemail='      + aemail + '&year=' + year + '&club=' + club + '&position=' + position;  


            $.ajax({  
                type: "POST",  
                url: "acad_process.php",  
                data: dataString,  
                success: function(){      
                    $('#contact_form').html("<div id='message'></div>");  
                    $('#message').html("<h2>Contact Form Submitted!</h2>")
                    .append("<p>Thank you. We will be in touch soon.</p>")  
                };
                return false;

                error: function(){
                    $('#contact_form').html("<div id='message'></div>");  
                    $('#message').html("<h2>Contact Form Failed!</h2>")  
                    .append("<p>Sorry, your form returned an error! Please try again.</p>")  
                    .hide()  
                    .fadeIn(1500, function() {  
                    });
                };
                return false;      
            });  
        });
    });
});
</script>

どんな助けでも大歓迎です。私はAJAXが初めてなので。ありがとう

問題は PHP にあるようです。詳細な調査で、PHP ページにエラー 500 が表示され、ページに何も返されないためです。PHPコードは次のとおりです。

    <?php

   $email_to = "example@domain.co.uk";

   if (!empty($_POST))
   {
   $fname = $_POST["fname"];
   $lname = $_POST["lname"];
   $email_from = $_POST["aemail"];
   $year = $_POST ["year"];
   $club = $_POST ["club"];
   $position = $_POST ["position"];

   $email_subject = "Enquiry";

    $headers  = 'MIME-Version: 1.0' . "\r\n";
    $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers = "From: $email_from . \n";
$headers = "Reply-To: $email_from . \n";

$message = "<p> You have received a message!</p>";
    $message .= "<p><strong>First Name:</strong>" . $fname . "</p>";
    $message .= "<p><strong>Surname:</strong>" . $lname . "</p>";
    $message .= "<p><strong>School Year:</strong> " . $year . "</p>";
    $message .= "<p><strong>E-Mail:</strong>" . $aemail ."</p>";
    $message .= "<p><strong>Club:</strong> " . $club . "</p>";
    $message .= "<p><strong>Position:</strong>" . $position . "</p>";

    ini_set("sendmail_from",$email_from);
    mail($email_to, $email_subject, $message, $headers, '-f'.$email_from);
    }

    ?>
4

3 に答える 3

0

GET メソッドを使用してデータを渡しています。以下は、POST メソッドを使用してデータを渡す例です。

$.ajax({
  type: "POST",
  url: "some.php",
  data: { name: "John", location: "Boston" }
  }).success(function( msg ) {
    alert( "Data Saved: " + msg );
});
于 2013-06-13T19:59:29.653 に答える
-1

これを試して:

$(document).ready(function(){
        $(".submit").click(function() {  
            // validate and process form here
            var fname = $("#fname").val() ;
            var lname = $("#lname").val();
            var aemail = $("#aemail").val() ;
            var year = $("#year").val();
            var club = $("#club").val() ;
            var position = $("#position").val();
            var dataString = 'name='+ name + '&fname=' + fname + '&lname=' + lname + '&aemail='      + aemail + '&year=' + year + '&club=' + club + '&position=' + position;  


            $.ajax({  
                type: "POST",  
                url: "acad_process.php",  
                data: dataString,  
                success: function(){      
                    $('#contact_form').html("<div id='message'></div>");  
                    $('#message').html("<h2>Contact Form Submitted!</h2>")
                    .append("<p>Thank you. We will be in touch soon.</p>")  
                },
                error: function(){
                    $('#contact_form').html("<div id='message'></div>");  
                    $('#message').html("<h2>Contact Form Failed!</h2>")  
                    .append("<p>Sorry, your form returned an error! Please try again.</p>")  
                    .hide()  
                    .fadeIn(1500, function() { });
                }      
            });  // end of ajax
        }); // end of click listener
}); // end of doc ready
于 2013-06-13T20:32:09.623 に答える