いくつかのデフォルトと URL を持つ backbone.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());
このようにして、バックボーン モデル ボックスの各属性の情報を含む 1 つの行がテーブル「ボックス」に挿入されます。この場合のサーバー要求メソッドは POST で、テーブル「ボックス」の ID は自動インクリメントに設定されています。