从控制器向“标题”视图发送值,但是当页面更改时,变量未定义

时间:2017-02-08 06:26:05

标签: php codeigniter

将$ data的值从控制器发送到标题,但当页面更改为包含标题的另一个页面时,它会显示错误。

查看下面的代码

控制器

`$user_email=$_GET['email'];
  $this->load->model('Pmodel');

  $data['email']=$this->Pmodel->profile_model($user_email);

   $this->load->view('dashboard/profile',$data);`

现在标题为“查看”

    <?php  foreach ($data as $key ):?>
   <?php   
 $uname=$key['uname'];
 $user_email=$key['email'];
 ?>
    <li>
    <?php echo anchor('user/profile_user/?email='.$user_email, $uname ); ?></li>
  <?php endforeach; ?>

但是当页面从仪表板更改为配置文件时,它会显示错误 遇到PHP错误

严重性:注意

消息:未定义的变量:数据

文件名:dashboard / header.php

行号:58

遇到PHP错误

严重性:警告

消息:为foreach()提供的参数无效

文件名:dashboard / header.php

行号:58

4 个答案:

答案 0 :(得分:0)

您可以直接访问所需的密钥。

像:

 <?php   
$uname=$uname;
$user_email=$email;
?>
<li>
  <?php 
      echo anchor('user/profile_user/?email='.$user_email, $uname;
  ?>
</li>

答案 1 :(得分:0)

尝试这种方式..

在您的视图中使用此代码

  <?php  foreach ($data as $key ):?>
   <?php   
 $uname=$key['uname'];
 $user_email=$key['email'];
 ?>
    <li>
    <?php echo anchor('user/profile_user/'.$user_email, $uname ); ?></li>
  <?php endforeach; ?>

并且您的控制器使用此代码

public function profile_user($user_email)
{
   $data =array();
  $this->load->model('Pmodel');

  $data['email']=$this->Pmodel->profile_model($user_email);

   $this->load->view('dashboard/profile',$data);`
}

答案 2 :(得分:0)

您从控制器发送$ data ['email'],这意味着您要发送$email而不是$data

试试这个:

foreach ($email as $key )

答案 3 :(得分:0)

您需要传递数据

 $data['email']=$this->Pmodel->profile_model($user_email);

在每个控制器和方法中