【问题标题】:PHP data array variable not defined in viewPHP数据数组变量未在视图中定义
【发布时间】:2010-08-23 05:36:27
【问题描述】:

我正在使用 codeIgniter,我正在尝试传递一个数据数组。我是这样写的:

$data['username']="Dumbo";

我也写了这个:

$data['shouts']=$this->Musers->getShout();  // retrieve data from table

然后我写:

$this->load->view("welcome_message", $data);

在视图页面中,我写道:

 <?php echo $username;
    foreach ($shouts as $shout)
        {
        echo $shout->shout;
        echo '<br>';
        echo $shout->timeStamp;          
        }
  ?> 

问题是,虽然视图确实从表中检索数据并在视图页面中显示结果,但 $data['username'] 出现错误:

“未定义变量:用户名”

这是为什么呢? $data['username'] 已经定义好了!还是我做错了什么?

【问题讨论】:

  • "username" in $data['username'] 是索引,而不是变量。
  • @Maris 这是 codeigniter 的工作方式,您将数组加载到视图文件,然后将索引称为变量...@netrox 我在这里没有看到任何问题,请检查您是否拥有所有变量名和文件名拼写正确
  • $data['username'] 是否与 $data['shouts'] 冲突或什么?我不明白为什么它一直说 $username 未定义,但回显 $shouts 数组没有问题。
  • 不,它不会与任何你可以拥有任意数量的 $data 变量的东西冲突,只要它们有不同的索引,$shouts 不是一个数组,$data 是数组,而喊叫是只是在视图文件中“成为”变量的索引......也许你可以尝试发布所有代码,这样你可能会得到更多帮助。祝你好运!

标签: php arrays codeigniter view


【解决方案1】:
<?php echo $data['username']; ?>

如果你写了这个,就会发生错误。

正确的写法是喜欢

<?php echo $username; ?>

'username'是数据数组中的索引,使用load方法传给视图

$this->load->view("welcome_message", $data);

如果需要传递数组...

$data['usernames'] = $username_array;
$this->load->view("welcome_message", $data);

然后在视图中,

<?php print_r($usernames); ?>

【讨论】:

  • 其实我就是这么做的。我更新了。仍然说它是未定义的。
【解决方案2】:

在你看来,这样做吧..

$data = array(); 
$data['username'] = "something";
$data['shouts']=$this->Musers->getShout();

【讨论】:

  • 我就是这么做的。它是未定义的。
  • 注意:不要忘记 $data = array();
猜你喜欢
  • 1970-01-01
  • 2022-08-03
  • 2016-05-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-29
  • 2015-10-13
  • 1970-01-01
相关资源
最近更新 更多