У меня есть модель Backbone.js с некоторыми значениями по умолчанию и URL:Вставка Backbone.js модели в базу данных MySQL
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!";
Я пробовал читать много учебников, но я не могу заставить эту простую модель экономить на работе. Почему мой код не работает? Любые идеи о том, как это можно решить?
Благодаря
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, а идентификатор в таблице «Ящики» установлен на автоматическое приращение.
Почему бы вам не сохранить JSON в одном поле? Будет расширяться. Или лучшим способом будет использование базы данных на основе документов, такой как CouchDB или MongoDB, где данные уже сохранены как JSON. –
Вы видите сообщение «Введенное данные»? Ca n вы видите, что запрос к файлу php выполняется? вы вообще получаете ответ? – danwellman