【问题标题】:Save backbone model to php将主干模型保存到 php
【发布时间】: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";

?>
  1. 我收到“未收到数据”错误消息 “file_get_contents('php://input')”。
  2. 请求方法是 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


【解决方案1】:

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

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

$book_data = $_POST;

【讨论】:

  • 试了一下,结果是这样的:"Array()"
猜你喜欢
  • 1970-01-01
  • 2013-08-10
  • 2013-04-30
  • 1970-01-01
  • 2013-04-22
  • 1970-01-01
  • 1970-01-01
  • 2017-05-23
  • 1970-01-01
相关资源
最近更新 更多