我是一名学生正在使用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;
});
});
非常感谢,对不起我的英语写作。
答案 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)");