我是一名初学者学习Backbone JS,并且在将我的第一个测试模型保存到MySQL数据库时遇到问题。尽管AJAX请求是通过正确的POST有效载荷(根据浏览器检查器)从Backbone发送的,但后端上的PHP脚本似乎正在接收空数组。无法将Backbone JS模型保存到MySQL数据库
下面是该模型的代码:
var UserModel = Backbone.Model.extend({
urlRoot: 'backboneUserBackend.php',
defaults: {
name: '',
email: ''
}
});
var user = new UserModel(),
userDetails = {name: 'Jim Smith', email: '[email protected]'};
user.save(userDetails, {success: function(user){
console.log(user);
}
});
这里是我的PHP脚本:
if (!empty($_POST)) {
// @todo: replace deprecated mysql method w/ PDO connection
mysql_connect("localhost", "user", "password");
mysql_select_db("mydatabase");
if (mysql_errno()) {
exit('DB connect error: '.mysql_error());
}
$name = mysql_real_escape_string($_POST['name']);
$email = mysql_real_escape_string($_POST['email']);
$query = sprintf("INSERT INTO users VALUES (NULL, '%s', '%s')", $name, $email);
if (mysql_query($query)) {
echo mysql_insert_id();
} else {
exit('Error inserting record: '.mysql_error());
}
}
为了测试是否实际上正在通过AJAX请求执行我的PHP脚本,我将此测试添加到顶端:
$fh = fopen("mytest_".time().".txt", "w");
ob_start();
print_r($_POST);
$payload = ob_get_clean();
fwrite($fh, $payload);
fclose($fh);
每当保存我的Backbone模型时,都会创建一个新文件,但该文件包含一个空数组。有什么想法吗?
注意:我使用的是Chrome。另外,我知道我应该在我的Backbone模型中使用简单的根URL(例如“/ user”)......我只是暂时使用“backboneUserBackend.php”脚本来进行测试。
谢谢!我改变了它,它运作良好。 – hawkharris