我有一个带一些默认值和url的bone.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());
这样,将在表“框”中插入一行,其中包含主干模型框的每个属性的信息。在这种情况下,服务器请求方法是POST,并且表“ boxes”中的ID设置为自动递增。
骨干是基于REST API:当保存/更新模型到服务器,骨干会发送与请求体序列化为JSON
POST
我们的PUT
请求。从Backbone.sync文档
使用默认实现时,当Backbone.sync发送保存模型的请求时,其属性将被传递,序列化为JSON,并在HTTP正文中使用内容类型application
/ json发送。
这意味着您必须在服务器端
这样的事情应该让你开始
$request_method = strtolower($_SERVER['REQUEST_METHOD']);
$data = null;
switch ($request_method) {
case 'post':
case 'put':
$data = json_decode(file_get_contents('php://input'));
break;
}
// print_r($data);
// note that mysql_* functions are deprecated
// http://php.net/manual/en/function.mysql-query.php
// inserting with a PDO object, assuming an auto incremented id
$sql = "INSERT INTO boxes (x, y, w, h) VALUES(?, ?, ?, ?)";
$sth = $dbh->prepare($sql);
$sth->execute(array(
$data->x,
$data->y,
$data->w,
$data->h
));
$id = $dbh->lastInsertId();
检查此页面,以在PHP http://www.gen-x-design.com/archives/create-a-rest-api-with-
php/中
更全面地实现REST API 。
问题内容: 我想在我的MySQL数据库中插入整数188和90,但以下代码不起作用: 为什么不起作用? 问题答案: 编辑 为我工作: 在MySQL表;
问题内容: 我更喜欢前端开发,并且最近开始将Backbone.js探索到我的应用程序中。我想将模型数据保存到服务器。 您能否解释一下保存模型数据的各种方式(使用json格式)。我在服务器端使用Java。我也主要看到REST用于保存数据。由于我更喜欢前端开发人员,因此我不了解REST和其他类似内容。 如果有人可以用一些简单的例子向我解释这个过程,那就太好了。 问题答案: 基本上,模型具有称为属性
问题内容: 通讯: 但是我想通过Ajax将我的电子邮件插入数据库。我不希望页面被重定向,因为每次刷新页面时,都会将空值插入数据库。 我只希望我的电子邮件通过Ajax插入数据库,然后再发送电子邮件,即 应该消失,并且应该有“您已成功订阅”行。 任何简短的代码将非常有用..预先感谢您:) 问题答案: 尝试这个: 和在 不要使用已弃用的。 实际上,如果您的问题是将空值插入数据库,则尝试此操作,这里不需要
主要内容:基本语法,向表中的全部字段添加值,向表中指定字段添加值,使用 INSERT INTO…FROM 语句复制表数据数据库与表创建成功以后,需要向数据库的表中插入数据。在 MySQL 中可以使用 INSERT 语句向数据库已有的表中插入一行或者多行元组数据。 基本语法 INSERT 语句有两种语法形式,分别是 INSERT…VALUES 语句和 INSERT…SET 语句。 1) INSERT…VALUES语句 INSERT VALUES 的语法格式为: INSERT INTO <表名> [
问题内容: 我有以下要存储在数据库中的数组… 我试图搜索谷歌上如何做到这一点,我所能找到的是表明插入数组之前需要对数组进行拆分的信息。它是否正确?抱歉,天真,对于php来说还很陌生。 问题答案: 您不能直接将数组插入 mysql, 因为 mysql 无法 识别php 数据类型。 Mysql 只了解 SQL 。因此,要将数组插入mysql数据库,必须将其转换为sql语句。可以手动或通过库来完成。输出
问题内容: 我使用Google Maps API制作了一个非常简单的页面,其中有几个字段,用户将在其中放置一些数据。看起来像- http://aiworker2.usask.ca/marker_field_db.html 我要做的是使用javascript / Ajax将数据存储到MySQL数据库中。我发现了几个使用Jquery的示例。我是这个javascript / Ajax / Jquery平