我正在尝试保存一个非常简单的主干模型并将其解析为 php 文件,以便可以将其发送到 MySQL 数据库。 问题是我的 php 脚本停在“ file_get_contents('php:// input')”上,我认为它没有返回任何数据。另一个奇怪的事情是在Chrome开发人员工具中,在“网络”中,请求方法是 GET ,不应该是 POST / PUT
model.js (非常简单的型号):
Book = Backbone.Model.extend({
url: "js/php/action.php",
defaults: {
name: 'Validation Book',
author: 'Validation',
year: '2014'
}
});
var book = new Book();
book.save();
action.php (只保留重要的内容,在我的代码中,我已经注释了很多已经尝试过的东西...... ):
<?php
include('connection.php');
$book_data = json_decode(file_get_contents('php://input'), true)
or die("<br> Data not received");
print_r($book_data);
$Name = $book_data['name'];
$Author = $book_data['author'];
$Year = $book_data['year'];
mysql_select_db('testdb',$con) or die("Database not selected");
echo "<br> Table Selected";
mysql_query("INSERT INTO books(id, name, author, year)
VALUES('', '$Name', '$Author', '$Year') ")
or die(mysql_error());
echo "<br> Data inserted";
?>
那么,乍一看有什么问题吗?
更新
忘了它,它的工作......我在我的localhost中运行php文件,而不是index.html页面,它实际上触发了model.js来触发POST请求,那就是“file_get_contents”wans't “得到”任何东西。这一切都很好,数据正在我的数据库中插入!对于noobness来说......我对此非常着迷。无论如何,谢谢你的帮助。
答案 0 :(得分:0)
是的,没有id的模型上的骨干保存功能应该触发POST请求(如果id已经存在,则为PUT请求)。
在控制器上试一试,看看会发生什么:
$book_data = $_POST;