Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用json编码的php数组填充主干集合_Javascript_Php_Json_Backbone.js - Fatal编程技术网

Javascript 使用json编码的php数组填充主干集合

Javascript 使用json编码的php数组填充主干集合,javascript,php,json,backbone.js,Javascript,Php,Json,Backbone.js,我正在做一个简单的测试。从json编码的php数组填充主干集合 var MyObjectModel = Backbone.Model.extend({ parse:function(response){ return JSON.parse(response); } }); var MyObjectView = Backbone.View.extend({ template: _.template('<a id="<%= id %>" h

我正在做一个简单的测试。从json编码的php数组填充主干集合

var MyObjectModel = Backbone.Model.extend({
    parse:function(response){
        return JSON.parse(response);
    }
});

var MyObjectView = Backbone.View.extend({
    template: _.template('<a id="<%= id %>" href="#"><%= name %></a>    '),
    render: function(){
        this.$el.html(this.template(this.model.attributes)); 
        return this;
    }
});

var MyList = Backbone.Collection.extend({
    url: 'testRest.php',
    model: MyObjectModel
});

var MyListView = Backbone.View.extend({
    el:$("#app"),
    initialize: function(){
        this.collection.on('add',this.addOne,this);
        this.collection.on('reset',this.addAll,this);
    },
    addOne: function(objectModel){
        var objectView = new MyObjectView({model: objectModel});
        this.$el.append(objectView.render().el);
    },
    addAll: function(){
        this.$el.empty();
        this.collection.forEach(this.addOne,this);
    },
    render: function(){
        return this;
    }
});

var myList = new MyList();
var myListView = new MyListView({collection:myList});

myList.fetch().done(function(){
    myListView.render();
});
但当我尝试在返回的对象中包含多个项目时:

echo json_encode("[{\"id\":\"4\",\"name\":\"one\",\"color\":\"ff6600\",\"phoneNumber\":\"+123456789\"},{\"id\":\"1\",\"name\":\"two\",\"color\":\"800080\",\"phoneNumber\":\"\"}]");
我有一个错误:

未捕获引用错误:未定义id

有人遇到过同样的问题吗?我错过什么了吗


提前感谢。

主干代码没有问题,但php脚本有两个问题:

1) 将内容类型头设置为json 2)
json_encode
采用php数组

<?php

header('Content-Type: application/json');

$resp = array(
    array(
        'id' => 4,
        'name' => 'one',
        'color' => 'ff6600',
        'phoneNumber' => '+123456789'
    ),
    array(
        'id' => 1,
        'name' => 'two',
        'color' => '80080',
        'phoneNumber' => ''
    )
);

echo json_encode($resp);

不执行
返回JSON.parse(响应)
-响应已被解析。解析方法是这样的,您可以返回嵌套数据以将集合转换为模型,例如
返回响应。数据
是典型的
echo json_encode("[{\"id\":\"4\",\"name\":\"one\",\"color\":\"ff6600\",\"phoneNumber\":\"+123456789\"},{\"id\":\"1\",\"name\":\"two\",\"color\":\"800080\",\"phoneNumber\":\"\"}]");
<?php

header('Content-Type: application/json');

$resp = array(
    array(
        'id' => 4,
        'name' => 'one',
        'color' => 'ff6600',
        'phoneNumber' => '+123456789'
    ),
    array(
        'id' => 1,
        'name' => 'two',
        'color' => '80080',
        'phoneNumber' => ''
    )
);

echo json_encode($resp);