Ajax不发送数据

时间:2014-03-20 09:55:18

标签: php jquery ajax post

大家早上好,

我是一个关于Ajax的新手。 我已经有一个PHP脚本工作。 我知道我的php需要与PDO一起发展,但这是另一个问题。 但我想实现ajax以避免重新加载,因为我想学习它。

Php脚本:

<?php 

session_start();

require "connect.php";

$firstName  = $_POST['regFirstName']; 
$lastName  = $_POST['regLastName']; 
$companyName = $_POST['regCompanyName']; 
$email = $_POST['regEmail'];
$password = $_POST['regPassword'];
$confirmPwd = $_POST['regConfirmPwd'];    

$add = mysqli_query($con,"INSERT INTO user (firstName, lastName, companyName, email, password) VALUES ('$firstName' , '$lastName', '$companyName', '$email', '$password') ") or die("Can't  Insert! ");
mail($email, "Your registration has been successful, please note your registration details\n\n ID: $email\n\n Password: $password\n\n" ); 
$success = "Successful! <a href='../login.php'> Click Here </a> to log In.";
echo($success); 

在ajax脚本下面:

$(document).ready(function(){
    $("#regForm").submit(registration);

            function registration(){

                var regData = $("#regForm").serialize();

                $.ajax({
                    url: "regScript.php",
                    type: "POST",
                    data: regData,
                    success: function(){
                        console.log("ok");
                    },

                    error: function(){
                        console.log("regData");
                    }
                });      
    });

形式:

<form id="regForm" name="regForm">
    <div>
        <input type="text" id="regFirstName" name="regFirstName">
    </div>

    <div>
        <input type="text" id="regLastName" name="regLastName">
    </div>

    <div>
        <input type="text" id="regCompanyName" name="regCompanyName">
    </div>

    <div>
        <input type="email" id="regEmail" name="regEmail">
    </div>

    <div>
        <input type="password" id="regPassword" name="regPassword">
    </div>

    <div>
        <input type="password" id="regConfirmPwd" name="regConfirmPwd">
    </div>
    <br>
    <div id="errorWindowRegister">
    </div>

    <br>

    <button type="reset" name="reset" id="rstRegister" href="#">Reset</button>
    <button type="submit" name="submit" id="regButton">Register</button>
</form>

我不知道如何从Ajax检索数据到Php。 Jquery代码似乎有效,但数据没有很好地发送到Php。

如何使用Ajax检索数据并将其发送给Php?

此致 ë

4 个答案:

答案 0 :(得分:1)

您忘了在脚本中添加分号。无论如何,您在发送表单时不会停止活动。我想你会有另一个问题。

$(document).ready(function(){
    $("#regForm").submit(registration);
    function registration(){
        var regData = $("#regForm").serializeArray();
        $.ajax({
           //...
        })//; Semi-colon is missing here
    }) // Edit: And here extra ')' ?
});

如果您有任何错误,请添加您的控制台输出。


修改

如果Ajax请求出现问题,以下内容应解决您的问题。我看不到你已经做过的修改。但我99%的样本会有所帮助。

$(document).ready(function(){
    $("#regForm").submit( function(e) {

        e.preventDefault(); // Avoid page reload
        var regData = $("#regForm").serialize();

        $.ajax({
            url: "regScript.php",
            type: "POST",
            data: regData,
            dataType: "html", // You want retrieve html (I guess it's the default but it's better to be explicit)
            success: function(myReturnedHtml){
               console.log(myReturnedHtml); // Put the result where you want
            }
            //... 
        });
    }); 
});

答案 1 :(得分:0)

url regScript$.ajax regScript.php的内容是什么?必须{{1}}正确。?

答案 2 :(得分:0)

您的代码应该是Ajax块中的

url: "regScript.php",
type: "POST",
data: "regData="+regData

答案 3 :(得分:0)

    $(document).ready(function(){
        $("#regButton").click(function()
    {
             var regData = $("#regForm").serializeArray();
            $.ajax({
                url: "regScript.php",
                type: "POST",
                data: regData,
                success: function(){
                    console.log("OK");
                },
                error: function(){
                    console.log("NOT OK");
                }
            })  ;    
    });
   });

HTML

 <input type="button" name="submit" id="regButton" value="Register">