我使用extjs网格视图创建cakephp。
为此我创造,
1)我写的一个movie_controller控制器文件
function index() {
$this->recursive = 0;
$this->set('movies', $this->Movie->find("all"));
}
2)在view / movies / index.ctp
中创建第二个index.ctp文件 <?php echo '{"rows":'.$javascript->Object($movies).'}'; ?>
3)然后在js文件中我调用这个index.ctp文件
没有在网格中获取数据。 在firebug中调试时,它会显示这个数组
{&#34;行&#34;:[{&#34;电影&#34; {&#34; ID&#34;:&#34; 1&#34;&#34;日期_&#34 ;:&#34; 1970-01-01&#34;&#34;笔记&#34;:&#34; Note13455 - &#34;&#34; ASSET_ID&#34;:&#34; 1&# 34;,&#34; maint_picture&#34;:&#34;&#34;&#34; maint_condition1&#34;:&#34;差&#34;&#34; maint_condition2&#34;:&# 34;新&#34;&#34; maint_condition3&#34;:&#34;优秀&#34;&#34; maint_condition4&#34;:&#34;好&#34;}},{&#34;电影&# 34;:{&#34; ID&#34;:&#34; 2&#34;&#34;日期_&#34;:&#34; 2009-03-20&#34;&#34;笔记&# 34;:&#34;注2&#34;&#34; ASSET_ID&#34;:&#34; 1&#34;&#34; maint_picture&#34;:空,&#34; maint_condition1&#34 ;: &#34;优异&#34;&#34; maint_condition2&#34;:&#34;优异&#34;&#34; maint_condition3&#34;:&#34;新&#34;&#34; maint_condition4& #34;:&#34;差&#34;}}]}
==&gt;在这个json文件中,如何删除在启动所有记录中显示的Movie数组。
答案 0 :(得分:0)
<?php echo '{"rows":'.$javascript->Object($movies['Movie']).'}'; ?>
答案 1 :(得分:0)
如果要从数组中删除第一个数组,我们必须在网格中逐个数组打印。 它完成了。
<?php
$output='{"rows":[';
$total=$ta=count($movies);
for($i=0;$i<$total;$i++)
{
$t=$i+1;
if($t==$total)
{
$output.=$javascript->Object($movies[$i]['Movie']);
}
else
{
$output.=$javascript->Object($movies[$i]['Movie']).',';
}
}
$output.=']}';
echo $output;
?>
答案 2 :(得分:0)
你越走越近了。尝试使用控制器中的$movies
变量完成所有工作(记住MVC模式!不要破坏它!)。
您可以通过执行类似......
之类的操作来完成此操作// in your controller
$data = null;
$movies = $this->Movie->find('all');
foreach ($movies as $key => $value) {
foreach ($value['Movie'] as $k => $v {
$data['rows'][$key][$k] = $v;
}
}
然后将其转换为json对象。
基本上我认为它没有加载数据,因为你的json看起来像这样
{ “行”:[{ “电影”:{ “ID”: “1”, “日期_”: “1970-01-01”, “注释”: “Note13455 - ”, “ASSET_ID”:“1 “,”maint_picture“:”“,”maint_condition1“:”差“,”maint_condition2“:”新“,”maint_condition3“:”优秀“,”maint_condition4“:”好“}},{”电影“:{” ID “:” 2" , “日期_”: “2009-03-20”, “注意事项”: “注2”, “ASSET_ID”: “1”, “maint_picture”:空, “maint_condition1”: “优秀”,” maint_condition2 “:” 优”, “maint_condition3”: “新”, “maint_condition4”: “差”}}]}
它看起来应该是这样的
{ “rows”:[{ “ID”: “1”, “日期_”: “1970-01-01”, “注意事项”:“Note13455-” “ASSET_ID”: “1”, “maint_picture”: “”, “maint_condition1”: “可怜”, “maint_condition2”:“新”, “maint_condition3”: “优秀”, “maint_condition4”: “好” },{ “ID”: “2”, “日期_”: “2009-03-20”, “注意事项”:“注2” “ASSET_ID”: “1”, “maint_picture”:空, “maint_condition1”: “优秀”, “maint_condition2”: “优秀”, “maint_condition3”: “新”, “maint_condition4”: “可怜” } ]}
您想删除"Movies": {..object..}
部分,因此它只是一个对象数组,如{id: 1},{id: 2},{id: 3}
等。
确保在JsonReader中将行设置为root !!
var reader = new Ext.data.JsonReader({
root: 'rows'
});