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

时间:2014-03-18 12:53:38

标签: javascript ajax

我是一名学生正在使用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;
        });
    });

非常感谢,对不起我的英语写作。

2 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:0)

首先,我想说你应该使用预备语句。 虽然您使用预准备语句清理用户输入(GOOD),但仍建议使用它。 它不仅有助于提高可读性,而且更安全。

确保您的表单发送以下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

如果上述条件相同,则服务器应接收您的所有数据。我确实在您的查询中发现可能存在问题的问题。

您正在做的是将所有内容作为字符串插入数据库中。您必须确保在尝试执行查询时给定给定值与数据库对应的表的值。

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

确保一切正确,例如数据库中的日期列是字符串还是mysql日期类型。试着失去'。

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