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

Posted

技术标签:

【中文标题】将值从控制器发送到“标题”视图,但当页面更改时,变量未定义【英文标题】:Sending a value from controller to 'header' view but when page changes the variable is undefined 【发布时间】:2017-02-08 06:26:04 【问题描述】:

将 $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

【问题讨论】:

【参考方案1】:

您可以直接访问密钥,无需循环。

喜欢:

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

【讨论】:

我正在使用 foreach 从我的函数中获取更多值,如果我删除它会显示错误,即数组到字符串转换错误 请分享数据和电子邮件的 print_r 和 unname【参考方案2】:

试试这个方法..

在您的视图中使用此代码

  <?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);`

【讨论】:

这是遇到 PHP 错误的错误严重性:警告消息:缺少 User::profile_user() 的参数 1,在 C:\xampp\htdocs\P_Display\system\core\CodeIgniter 中调用.php 在第 360 行并定义文件名:controllers/user.php 行号:131 你是什么控制器和函数名【参考方案3】:

你从控制器发送$data['email'],这意味着你发送$email而不是$data来查看

试试这个:

foreach ($email as $key )

【讨论】:

【参考方案4】:

你需要传递数据

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

在每个控制器和方法中 .

【讨论】:

以上是关于将值从控制器发送到“标题”视图,但当页面更改时,变量未定义的主要内容,如果未能解决你的问题,请参考以下文章

如何通过 ajax 将值从 django 模板发送到视图?

如何将值从 tableview 传递到 collectionview

将值从一个视图发送到另一个 ExtJS 4

将值从一个视图控制器传递到另一个视图控制器的问题

将值从视图传递到控制器,我错过了啥?

在将值从 Servlet 发送到客户端 JSP 时获取 null [重复]