在javascript中使用来自控制器(或视图)的php数据

时间:2013-08-12 07:59:50

标签: php javascript arrays view controller

我有一个关于在javascript中使用从数据库中提取的数据的问题。

在我的控制器中我有这个:

$this->view->projects = $projectsarray;

我将数组发送到我的视图。在那里,我将遍历我的阵列并显示标题。现在我需要在javascript中获取该数组,因为我想创建一个包含数据的高图...

有谁知道我怎么能这么做?

编辑: 我现在在我的控制器中有这个:( overviewcontroller)

public function getprojectdataAction($id){

}

在我的javascript文件中:

var id = 1;
$.post('/overview/getprojectdata/',{id:id},function(data){
    alert("test");
});

但是我收到了无法找到资源的错误:

  

POST http://www.namesite.com/overview/getprojectdata/ 404(未找到)

我做错了什么?

3 个答案:

答案 0 :(得分:2)

我认为$this->view->projects是数组或对象

视图文件中的

<script>

var projects = <?php echo json_encode($this->projects);?>;
console.log(projects);
</script>
然后看着你的萤火虫......

答案 1 :(得分:1)

您可以通过将数组转换为JSON来执行此操作,您可以将ajax请求发送到同一个控制器

并返回echo json_encode($ array);那么你可以通过解码来直接使用响应......

$.post('controller/action',{id:id},function(data){
    var arrayJson=JSON.parse(data);
});

你可以使用arrayJson作为数据数组......

答案 2 :(得分:0)

你可以在代码的php部分使用json_encode从你的数组中生成一个javascript对象。例如:

$php = array("myAttrib" => "hallo");
echo json_encode($php);

在javascript中你可以使用

alert (output.myAttrib);

,其中output表示echo json_encode(php)。这段代码会打开一个显示“hallo”的框。您的问题似乎与how to use json_encode非常相似。对于创建高级图表,此帖Highcharts data series issue with ajax/json and PHP可能对您有用。