将变量从视图传递到视图 codeigniter

Posted

技术标签:

【中文标题】将变量从视图传递到视图 codeigniter【英文标题】:Pass variable from view to view codeigniter 【发布时间】:2018-02-21 03:04:25 【问题描述】:

我想知道如何在 codeigniter 中将变量从一个视图发送到另一个视图。

我的控制器 我想在这里传递那个“输入”变量:

public function registroArea()
    
        $data = array('views' => 'registrarArea');
        $input = array();
        $input["input_name"]= array(
            'name' => 'nombreArea',
            'class' => 'form-control');
        $input["input_submit"]= array(
            'name' => 'submit',
            'value' => 'Guardar',
            'class' => 'btn btn-success btn-lg');

        //print_r($input);

        $this->load->view('template', $data, $input);
    

我从中加载另一个视图的模板视图:

<section class="content">
    <?php if($views==""): ?>
      <center>
       <h1>Bienvenido</h1>
      </center>
     <?php else:?>
     <?php $this->load->view($views, $input);?>
     <?php endif; ?>
    </section>

我的视图表单,你应该在“输入”中加载变量:

<?php echo form_open('GuardarArea') ?>
            </br></br>
             <div class="container">
               <div class="row">
               <div class="col-xs-3 col-md-3"></div>
                <div class="col-xs-6 col-md-6">
                    <div class="form-group">                        
                    <?php echo form_label("nombre del area", "nombreArea") ?>
                        <div class="controls">
                        <?php echo form_input($input_name) ?>
                        </div>
                    </div>
                </div>
                <div class="col-xs-3 col-md-3"></div>
              </div>  <!-- Div row -->
             </div>  <!-- Div container -->
             </br></br>
             <div class="container">
                <div class="row">
                <div class="col-xs-12 col-md-12">   
                    <center>
                     <?php echo form_submit($input_submit) ?>
                    </center>           
                </div> <!-- Div col-xs-12 col-md-12-->
                </div><!-- Div row-->
            </div> <!-- Div container -->
<?php echo form_close()?> 

感谢您的合作。

【问题讨论】:

我认为从您的第一个视图您应该传递$input_name 而不是$input,然后在您的第二个视图中,$input_name 将仅作为$input_name 提供 如果你的意思是: $inputname= array( 'name' => 'nombreArea', 'class' => 'form-control'); $inputsubmit = array('name' => 'submit', 'value' => 'Guardar', 'class' => 'btn btn-success btn-lg'); $this->load->view('template', $data, $inputname,$inputsubmit);我已经试过了。还有其他想法吗? 【参考方案1】:

您应该通过数据数组传递信息,通常您应该能够在正在加载的后续视图中访问它。

编辑:load->view 的第三个参数不应该用于传递变量。 见文档:Codeigniter Views

您应该做的是通过数据数组从控制器发送数据:

$data['input'] = array(
        "input_name"    => array(
                            'name'  => 'nombreArea',
                            'class' => 'form-control'),
        "input_submit"  => array(
                            'name'  => 'submit',
                            'value' => 'Guardar',
                            'class' => 'btn btn-success btn-lg'),
    );

这可以在(所有)后续视图中以$input['input_name'] 访问

或者,如果您希望以$input_name$input_submit 的身份从您的视图中访问它们,您可以将子数组作为单独的$data['input_name']$data['input_submit'] 传递。

$data 参数数组将被传递。

【讨论】:

我不能,我已经做了@coderoduor提到的事情,我仍然有错误:消息:未定义变量:输入名称。 我不认为你说得对,加载视图函数中的第三个参数不是要传递变量! codeigniter.com/user_guide/general/… 我明白了,抱歉我用了很短的时间,但问题本身就是将一个变量从控制器传送到通过模板的表单视图 加载模板时,$data 数组被传递给视图。该数组中的每个键都可以作为视图页面中的变量访问。如果您在其他视图上加载,则应该可以从所有后续视图中访问这些视图。当您使用它来生成表单时,可能有更好的方法来生成您的表单元素,然后在您的控制器中定义每个元素,这会为您提供大量代码,同时最好维护“瘦”控制器,但这是另一个讨论。

以上是关于将变量从视图传递到视图 codeigniter的主要内容,如果未能解决你的问题,请参考以下文章

通过 uinavigationcontroller 将变量从父视图传递到子视图

如何轻松地将变量从一个视图传递到另一个视图?

将变量从 UIHostingController 传递到 SWIFTUI 视图

将变量从页面视图控制器传递到另一个

将局部变量从控制器传递到视图

将变量从视图传递到表单 Django