Codeigniter:设置编辑页面的表单值

时间:2012-07-27 19:10:32

标签: php codeigniter

我正在尝试创建一个编辑页面,其中从数据库中填充表单字段。我试图通过设置一些随机文本来实现它,但是我无法将其显示出来。

我的控制器中有以下内容:

public function edit($item_id) {

    $this->data['title'] = "Edit Item";

    $this->data['item_title'] = array(
        'name' => 'item_title',
        'id' => 'item_title',
        'type' => 'text',
        'value' => 'a title',
      );

      $this->data['url_slug'] = array(
        'name' => 'url_slug',
        'id' => 'url_slug',
        'type' => 'text',
        'value' => 'some-url-slug',
      );

    $this->template->build('admin/item/form', $this->data);
  }

这是我的观点:

<?php echo form_open('admin/item/update_item', array('id' => 'item_form')); ?>

<input type="text" name="item_title" value="<?php echo set_value('item_title'); ?>" id="item_title" placeholder="Enter a title..."/>

<input type="text" name="url_slug" value="<?php echo set_value('url_slug'); ?>" id="url_slug" placeholder="url-slug-of-the-item"/>

当我进入/ edit / id页面时,占位符仍然显示,值为空。为什么不设置?当我用它进行表单验证时,它工作正常。

3 个答案:

答案 0 :(得分:2)

我仍然是codeigniter的新手,所以原谅我的无知。

您不能简单地使用以下内容吗?

<input type="text" name="item_title" value="<?= $item_title['value'] ?>" id="item_title" placeholder="Enter a title..."/>

注意:这对fuelphp有效;不是100%肯定codeigniter。

答案 1 :(得分:1)

我最终放弃了数组,只是在控制器中执行了$this->data['item_title'] = 'some title';,在视图中,set_value实际上接受了第二个参数,如下所示:

<?php echo set_value('item_title', $item_title); ?>

这就是诀窍,虽然如果变量不存在我会收到警告,所以我需要将它们全部声明。

答案 2 :(得分:0)

我最终放弃了数组而只是做了$ data ['fullName'] ='某个标题';在控制器中,在视图中,set_value实际上接受第二个参数,如下所示:

<?php    
   if(!isset($fullname)) {
        $fullname = set_value('fullName');   
   }

   echo form_open(base_url() . "broker/practice_send.html");

   echo form_label("Name", "name");
   $data = array(
      'name'     => 'fullName',
      'id'       => 'name',
      'value'    => set_value('fullName', $fullname)
   );
   echo form_input($data);

&GT;