将变量发送到控制器并使用codeigniter将其恢复查看

时间:2015-01-02 18:30:57

标签: php codeigniter

这是我第一次使用codeigniter创建一个网站。 我的问题如下:

我的视图文件包含:

<label class="control-label ">Insert Number of photos : </label>
<?php echo form_open('project_controller/no_of_pics'); ?>
<input name="no_pics" placeholder="Insert a number" type="text" value="<?php echo set_value('no_pics'); ?>" >
<input type='submit' name='submit' value='Insert' /> 
<?php echo form_close() ?>
<?php  $no_pic=''; ?>
<?php echo $no_pic; ?>
<br><br>`

我的控制器文件包含:

public function no_of_pics(){

      $this->load->view('control_panel');
      $number=$this->input->post('no_pics');
      $hoho = array('no_pic' =>  $number  );
      $this->load->view('control_panel',$hoho);

 }

我写了那行.htaccess文件:

$route['project_controller/no_of_pics'] = "/project_controller/no_of_pics";

我的问题是我无法将no_pics恢复到视图中,它应该通过控制器中的验证规则来检查数字,但我想首先将数字返回到视图文件

当我编写上面的代码时,我得到了数字,但是在视图文件的普通页面中没有任何样式,在顶部我输入表单中插入的数字甚至不在我想要使用的位置。

2015年3月1日 我想我知道问题是什么,但我仍然不知道如何解决它。我在该控制器中有另一种方法     &#34; project_controller&#34;是:

 public function project($page = 'home'){ 
    if ( ! file_exists ('application/views/'.$page.'.php')){ 
       show_404();
     } 
 $this->load->view($page);
 }

我在route.php文件中写道:

$route['(:any)'] = 'project_controller/project/$1'; 

所以我认为问题是"function no_of_pics()"在向其发送变量时无法正确查看页面,因为function project()对此负责,那么现在的解决方案是什么?

3 个答案:

答案 0 :(得分:0)

您必须通过函数的第一个参数提供字段名称。第二个(可选)参数允许您为表单设置值。check here

set_value('no_pics',$no_pic);

答案 1 :(得分:0)

您需要从视图文件中删除此行

<?php  $no_pic=''; ?>

重置从控制器传递的变量。

答案 2 :(得分:0)

你可以尝试这种技术

  $hoho['no_pic'] =$number;
  $this->load->view('control_panel',$hoho);

我想你会在视图页面找到它。