Javascript 使用jQuery将数据发布到服务器时出现问题

Javascript 使用jQuery将数据发布到服务器时出现问题,javascript,ajax,Javascript,Ajax,我是一名学生,正在使用jQueryMobile开发一个应用程序,并将使用Phonegap进行编译。我想使用jQuery将数据发布到服务器,但在服务器中加载.php文件时遇到问题 我有jQuery的最新版本 在这里,我将用于从表单发布数据的脚本放在下面: $(document).ready(function() { var postData = $('#registerForm').serialize(); $('#registerForm').submit(fu

我是一名学生,正在使用jQueryMobile开发一个应用程序,并将使用Phonegap进行编译。我想使用jQuery将数据发布到服务器,但在服务器中加载.php文件时遇到问题

我有jQuery的最新版本

在这里,我将用于从表单发布数据的脚本放在下面:

$(document).ready(function() {
        var postData = $('#registerForm').serialize();

        $('#registerForm').submit(function() {
            $.ajax({
                type: 'post',
                data: postData,
                url: 'http://www.smartweb.cat/app/Habana/user_register.php',
                success: function(data) {
                    alert('Usuari registrat correctament.');
                },
                error: function() {
                    alert('Hi ha algun problema amb el registre.');
                }
            });
            return false;
        });
    });

非常感谢,很抱歉我的英语写作。

您的帖子数据是空的。在加载DOM时直接检索它们,而不是在提交表单时。您应该移动
var postData

$(document).ready(function() {
    //var postData = $('#registerForm').serialize();

    $('#registerForm').submit(function() {
        var postData = $('#registerForm').serialize(); // here
        $.ajax({
            //...
       });
    });
});

首先,我想说的是,你应该使用事先准备好的陈述。 尽管您对用户输入进行了清理(很好),但仍然建议使用准备好的语句。 它不仅有助于提高可读性,而且更安全

确保您的表单发送以下postdata:

{name:"YourName", surname:"Yoursurname",date:"<dateobject>",email:"sample@mail.com",user:"username",password:"password}

== THIS LOOKS OK == 
$name = mysql_real_escape_string($_POST["name"]);
$surname = mysql_real_escape_string($_POST["surname"]);
$date = $_POST["date"];
$email = mysql_real_escape_string($_POST["email"]);
$user = mysql_real_escape_string($_POST["user"]);
$pass = mysql_real_escape_string($_POST["pass"]);
enter code here
确保所有内容都正确,例如数据库中的日期列是字符串还是mysql日期类型。试着失去你的爱

$result = mysql_query("INSERT INTO $tableName (name, surname, date, email, user, pass) VALUES   
($name, $surname, $date, $email, $user, $pass)");

哪些问题?请描述什么不起作用!顺便说一句,不要使用用户输入构建SQL命令:使用SQL参数,否则用户将编写的任何SQL代码都将被注入到您执行的命令中。mysql已被弃用,您应该开始使用mysqli。您还应该更喜欢[(序列化数组)
$result = mysql_query("INSERT INTO $tableName (name, surname, date, email, user, pass) VALUES   
($name, $surname, $date, $email, $user, $pass)");