0

在 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主视图的视图中访问 php 数组page.php

问候: 杰汉则布

4

3 回答 3

0

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

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

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

于 2013-03-22T10:52:29.893 回答
0

在 MVC 框架中,单例类随处可用,因此您需要将变量存储到某些属性中,最好的位置是配置对象,

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

阅读 CI 配置

于 2013-03-22T10:54:32.813 回答
0

好吧,在我解决了这个问题之后,我觉得这是一个愚蠢的问题。因为我正在theme-fonts视图内加载视图page而不是并行加载。theme-fonts我可以简单地在视图中编写我的脚本代码。这将反过来写入我的page观点。

页面.php

<?php $this->load->view('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");
?>
<script type="text/javascript">
    try{
        var fontsArray = <?php print(json_encode($font_list)); ?>;
        console.log(fontsArray);
    }catch(err){
        console.log(err.message);
    }
</script>
于 2013-03-22T11:48:33.483 回答