我有一个带有一些默认值和 url 的主干.js 模型:
var Box = Backbone.Model.extend({
url: "./save.php",
defaults: {
x: 0,
y: 0,
w: 1,
h: 1
}
});
然后我有这个模型的一个实例,我继续保存它:
var box = new Box({ x:10, y:10, w:200, h:200 });
box.save();
现在我想使用 PHP 脚本“save.php”将此模型保存到 MySQL 数据库中,如下所示:
<?php
include('connection.php');
$id = $_POST['cid'];
$x = $_POST['x'];
$y = $_POST['y'];
$w = $_POST['w'];
$h = $_POST['h'];
mysql_query("INSERT INTO boxes (id, x, y, w, h)
VALUES('$id', '$x', '$y', '$w', '$h')
") or die(mysql_error());
?>
echo "Data Inserted!";
我已经尝试阅读很多教程,但我无法让这个简单的模型保存工作。为什么我的代码不起作用?关于如何解决这个问题的任何想法?
谢谢
编辑:快速解决方案
在php脚本中,从发送的JSON对象中获取信息的正确方式如下:
$box_data = json_decode(file_get_contents('php://input'));
$x = $box_data->{'x'};
$y = $box_data->{'y'};
$w = $box_data->{'w'};
$h = $box_data->{'h'};
并存储在数据库中:
mysql_query("INSERT INTO boxes(id, x, y, w, h)
VALUES('', '$x', '$y', '$w', '$h') ")
or die(mysql_error());
这样,将在“boxes”表中插入一行,其中包含主干模型Box的每个属性的信息。在这种情况下,服务器请求方法是 POST,并且“boxes”表中的 id 设置为自动递增。