[php] Backbone.jsモデルをMySQLデータベースに挿入する


Answers

あなたはIDを送るのを忘れました。

// $ id = $ _POST ['cid'];

IdをAUTO_INCREMENTにしてコードから削除する:

$ id = $ _POST ['cid'];

mysql_query("INSERT INTO boxes (x, y, w, h)
                         VALUES('$x', '$y', '$w', '$h')
                       ") or die(mysql_error());
Question

私はいくつかのデフォルトと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であり、テーブル "boxes"のIDは自動インクリメントに設定されています。




Related