【发布时间】:2014-05-02 08:41:58
【问题描述】:
我正在尝试保存一个非常简单的 backbone 模型并将其解析到 php 文件中,以便将其发送到 MySQL 数据库。 问题是我的 php 脚本在“file_get_contents('php://input')”上停止,我认为它没有返回任何数据。另一个奇怪的是在chrome开发者工具中,在“Network”中,请求方法是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";
?>
- 我收到“未收到数据”错误消息 “file_get_contents('php://input')”。
- 请求方法是 GET,对应于 chrome dev。
那么,乍一看有什么问题吗?
更新
忘记它,它的工作...我在我的本地主机中运行 php 文件,而不是实际上触发 model.js 触发 POST 请求的 index.html 页面,这就是“file_get_contents”不想“得到”任何东西。一切都很好,数据正在插入我的数据库中!抱歉,新手...我对此感到非常疯狂。无论如何感谢您的帮助。
【问题讨论】:
-
刚刚用这个 fiddle 尝试过你的代码,它会为我发送 POST 请求
-
算了,它的工作...我在我的本地主机中运行 php 文件,而不是实际上触发 model.js 触发 POST 请求的 index.html 页面,这就是“ file_get_contents”不想“获取”任何东西。一切都很好,数据正在插入我的数据库中!抱歉,新手...我对此感到非常疯狂。无论如何感谢您的帮助。
标签: php mysql backbone.js