如何将php变量从视图(html)发送到控制器

时间:2016-07-28 09:11:29

标签: php html codeigniter codeigniter-2

这是我的HTML代码。我想通过" $category_edit->c_name"我的Update()控制器的值。我正在" $category_edit"来自另一个控制器的变量。

我正在使用CodeIgniter框架。

<form method="post" action="<?php echo base_url('admin/category/update');?>">
 <label>Parent Category: </label></br>
 <select name="parent_id">
 <?php
    echo '<option value="' .$category_edit->id .'">';
    echo $category_edit->p_name;
    echo '</option>';
 ?>
 </select>
 <label>Category</label>
 <input type="text" name="<?php echo $category_edit->c_name; ?>" id="category_name" value="<?php echo $category_edit->c_name; ?>">
 <button>Update</button>
</form>

这是我的update()控制器。 我收到错误:

  1. 未定义的变量:category_edit
  2. 尝试获取非对象的属性

    public function update(){
       $this->load->model('category_model');
       echo $category_edit->c_name;
    }
    

3 个答案:

答案 0 :(得分:3)

请查看此参考代码:

public function update_view()
{
    $this->load->model('category_model');

    $data['category_edit'] = $this->category_model->get_category_values(); // return array
    $data['extra_variable'] = 'lorem ipsum';

    $this->load->view('category/update_view', $data);
}

category/update_view.php

<form method="post" action="<?php echo base_url('admin/category/update');?>">
 <label>Parent Category: </label></br>
 <select name="parent_id">
 <?php
    echo '<option value="' .$category_edit['id'] .'">';
    echo $category_edit['p_name'];
    echo '</option>';
 ?>
 </select>
 <label>Category</label>
 <input type="text" name="<?php echo $category_edit['c_name']; ?>" id="category_name" value="<?php echo $category_edit['c_name']; ?>">
 <button>Update</button>
</form>

修改

请参阅:http://www.codeigniter.com/user_guide/general/views.html#adding-dynamic-data-to-the-view

答案 1 :(得分:2)

在HTML中进行一些更改(参见下面的代码)

<input type="text" name="category_name" id="category_name" value="<?php echo $category_edit->c_name; ?>">

public function update()
{
$this->load->model('category_model');
echo $this->input->post('category_name');
}

答案 2 :(得分:1)

您需要添加字段静态名称而不是任何变量。 所以尝试像这样添加

<input type="text" name="category_name" id="category_name" value="<?php echo $category_edit->c_name; ?>">

并且在控制器上你可以获得它的价值,如

$this->input->post('category_name');