【问题标题】:Use php data from controller (or view) in javascript在 javascript 中使用来自控制器(或视图)的 php 数据
【发布时间】:2013-08-12 07:59:49
【问题描述】:

我有一个关于在 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(未找到)

我做错了什么?

【问题讨论】:

    标签: php javascript arrays view controller


    【解决方案1】:

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

    在你的视图文件中

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

    然后看你的萤火虫......

    【讨论】:

      【解决方案2】:

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

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

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

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

      【讨论】:

        【解决方案3】:

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

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

        在javascript中你可以使用

        alert (output.myAttrib);
        

        ,其中输出指的是 echo json_encode(php)。此代码将打开一个显示“你好”的框。您的问题似乎与how to use json_encode 非常相似。为了创建一个高图表,这个帖子Highcharts data series issue with ajax/json and PHP 可能对你很感兴趣。

        【讨论】:

          猜你喜欢
          • 2012-08-04
          • 1970-01-01
          • 2012-07-19
          • 1970-01-01
          • 1970-01-01
          • 2015-11-26
          • 2018-08-18
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多