Вставить модель Backbone.js в базу данных MySQL

У меня есть модель backbone.js с некоторыми значениями по умолчанию и URL:

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(); 

Теперь я хочу сохранить эту модель в базе данных MySQL с помощью скрипта PHP «save.php», он выглядит следующим образом:

 <?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 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!"; 

Я пробовал читать много учебников, но я не могу заставить эту простую модель экономить на работе. Почему мой код не работает? Любые идеи о том, как это можно решить?

благодаря

EDIT: БЫСТРОЕ РЕШЕНИЕ

В 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()); 

Таким образом, одна строка будет вставлена ​​в таблицу «Ящики» с информацией каждого из атрибутов базовой модели Box. Метод запроса сервера в этом случае – POST, а идентификатор в таблице «Ящики» установлен в значение auto-increment.

Магистраль основана на REST API: при сохранении / обновлении модели на сервере Backbone отправит ее в виде JSON в тело запроса с помощью POST нашего запроса PUT . Из документации Backbone.sync

При реализации по умолчанию, когда Backbone.sync отправляет запрос на сохранение модели, ее атрибуты будут переданы, сериализованы как JSON и отправлены в тело HTTP с помощью приложения типа контента / json.

Это означает, что серверная сторона должна

  • определить тип запроса
  • декодировать сериализованный 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(); 

Проверьте эту страницу для более полной реализации REST API в PHP http://www.gen-x-design.com/archives/create-a-rest-api-with-php/

Вы забыли отправить идентификатор.

// $ 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());