【问题标题】:CodeIgniter: Passing variables between viewsCodeIgniter:在视图之间传递变量
【发布时间】:2014-01-18 17:17:10
【问题描述】:

假设您从控制器加载了一个视图,并且该视图加载了另一个视图,该视图使用了许多与加载它的视图相同的变量。如何让两个视图共享这些变量?谢谢

【问题讨论】:

  • 你不能从视图加载视图,只能从控制器加载;在这个控制器中,你拥有所有的变量
  • @Vickel。您是否尝试在另一个视图中加载视图?
  • @kumar_v 当然,但总是调用控制器
  • @Vickel。不,你没有尝试。我在我的项目中做了避免冗余,我们制作了一个文件并加载到另一个视图文件中。
  • 我刚试过,你说得对,它有效!谢谢你让我知道一些新的东西,非常有帮助,确实

标签: php codeigniter


【解决方案1】:

您为视图定义的所有变量都将传递给在父视图中加载的视图。你不需要通过第二个数组参数将它们向下传递到另一个级别,除非你想覆盖一个特定的值。

基本上,在“父”视图的第二个参数中定义所有变量,两个视图都会有这些变量。

【讨论】:

    【解决方案2】:

    例如:您正在控制器中加载视图:

    $data["msg"] = "hi";
    $this->load->view("view_file",$data);
    

    view_file 中,您正在加载另一个查看文件

    $this->load->view("view_file2",array("msg"=>$msg)); // here msg is extracted from first view file
    

    【讨论】:

    • 现在只是“中继”变量吗?
    • 我的意思是传递整组变量,而不必一一指定。
    • 是的,你可以做到。这都是你的逻辑。您可以将其作为数组传递。
    【解决方案3】:

    在一个视图中,我设置了这个:

    window.variable=variableToAnotherView;

    windows.variable 是全局传递变量,所以你可以在另一个视图中调用它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-05
      • 2012-07-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多