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


Use php data from controller (or view) in javascript

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

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

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

我将数组发送到我的视图。在那里,我将循环浏览我的数组并显示标题。现在我需要用javascript获取数组,因为我想用数据创建一个高图。。。

有人知道我怎么能轻松做到这一点吗?

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

public function getprojectdataAction($id){
}

在我的javascript文件中:

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

但我得到的错误是找不到资源:

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

我做错了什么?

我假设$this->view->projects是数组或对象

在您的视图文件中

<script>
var projects = <?php echo json_encode($this->projects);?>;
console.log(projects);
</script>

那就看着你的萤火虫。。。

您可以通过将数组转换为JSON来实现这一点,您可以向同一控制器发送ajax请求

并返回echo json_encode($array);然后你可以通过解码直接使用response…

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

您可以使用arrayJson作为数据数组。。。

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

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

在javascript中,您可以使用

alert (output.myAttrib);

,其中output指的是echo json_encode(php)。这个代码会打开一个显示"hallo"的框。您的问题似乎与如何使用json_encode非常相似。对于创建highchart,您可能会对这个使用ajax/json和PHP的Highcharts后数据系列问题感兴趣。