将骨干模型保存到php

时间:2014-05-02 08:41:58

标签: php mysql backbone.js

我正在尝试保存一个非常简单的主干模型并将其解析为 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";

?>
  1. 我收到了“未收到数据”错误 “的file_get_contents( 'PHP://输入')”。
  2. 请求方法是GET,相应于chrome dev。
  3. 那么,乍一看有什么问题吗?

    更新

    忘了它,它的工作......我在我的localhost中运行php文件,而不是index.html页面,它实际上触发了model.js来触发POST请求,那就是“file_get_contents”wans't “得到”任何东西。这一切都很好,数据正在我的数据库中插入!对于noobness来说......我对此非常着迷。无论如何,谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

是的,没有id的模型上的骨干保存功能应该触发POST请求(如果id已经存在,则为PUT请求)。

在控制器上试一试,看看会发生什么:

$book_data = $_POST;