将变量从视图传递到视图 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 将变量从父视图传递到子视图