Codeigniter从视图中获取php数组

时间:2013-03-22 10:45:23

标签: php codeigniter

在Codeigniter中,我有一个视图theme-fonts.php,我正在另一个视图中加载page.php

page.php

<?php $this->load->view('theme-fonts'); ?>
<script type="text/javascript">
    try{
        var fontsArray = <?php json_encode($font_list); ?>;
        console.log(fontsArray);
    }catch(err){
        console.log(err.message);
    }
</script>

以下是我的theme_fonts.php文件中的定义:

<link href="http://fonts.googleapis.com/css?family=Aclonica" rel="stylesheet" />
<link href="http://fonts.googleapis.com/css?family=Michroma" rel="stylesheet" />
<link href="http://fonts.googleapis.com/css?family=Paytone+One" rel="stylesheet" />
<link href="http://fonts.googleapis.com/css?family=Denk+One" rel="stylesheet" />
<link href="http://fonts.googleapis.com/css?family=Wendy+One" rel="stylesheet" />
<link href="http://fonts.googleapis.com/css?family=Fjalla+One" rel="stylesheet" />
<?php   
    $font_list = array();
    array_push($font_list,"Aclonica");
    array_push($font_list,"Michroma");
    array_push($font_list,"Paytone+One");
    array_push($font_list,"Denk+One");
    array_push($font_list,"Wendy+One");
    array_push($font_list,"Fjalla+One");
?>

所以我的问题是如何从主视图theme-fonts.php中的视图page.php访问php数组?

问候:Jehanzeb

3 个答案:

答案 0 :(得分:0)

您需要将数组传递给您的视图:

<?php $this->load->view('theme-fonts', array('font_list' => $font_list); ?>

我建议在控制器中声明数组并将其传递给主视图,这样数组就可以在你加载的所有视图中使用。

答案 1 :(得分:0)

在MVC框架中,单例类可以从任何地方获得,所以你需要将变量存储到你的情况下的一些属性,最好的位置是配置对象,

$this->config->set_item('item_name', 'item_value');

read about CI config

答案 2 :(得分:0)

在我解决了这个问题之后,我觉得这是一个愚蠢的问题。当我在theme-fonts视图中加载page视图而不是并行加载时。我可以在theme-fonts视图中编写我的脚本代码。这会将其写入我的page视图。

<强> page.php文件

<?php $this->load->view('theme-fonts'); ?>

<强>主题fonts.php

<link href="http://fonts.googleapis.com/css?family=Aclonica" rel="stylesheet" />
<link href="http://fonts.googleapis.com/css?family=Michroma" rel="stylesheet" />
<link href="http://fonts.googleapis.com/css?family=Paytone+One" rel="stylesheet" />
<link href="http://fonts.googleapis.com/css?family=Denk+One" rel="stylesheet" />
<link href="http://fonts.googleapis.com/css?family=Wendy+One" rel="stylesheet" />
<link href="http://fonts.googleapis.com/css?family=Fjalla+One" rel="stylesheet" />
<?php   
    $font_list = array();
    array_push($font_list,"Aclonica");
    array_push($font_list,"Michroma");
    array_push($font_list,"Paytone+One");
    array_push($font_list,"Denk+One");
    array_push($font_list,"Wendy+One");
    array_push($font_list,"Fjalla+One");
?>
<script type="text/javascript">
    try{
        var fontsArray = <?php print(json_encode($font_list)); ?>;
        console.log(fontsArray);
    }catch(err){
        console.log(err.message);
    }
</script>