0

我正在尝试制作一个从数据库填充表单字段的编辑页面。我试图通过设置一些随机文本来让它工作,但我无法让它显示。

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

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 页面时,占位符仍在显示并且值为空白。为什么没有设置?当我将它用于表单验证时,它工作正常。

4

3 回答 3

2

我对codeigniter还是新手,所以请原谅我的无知。

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

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

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

于 2012-07-27T19:14:13.290 回答
1

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

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

这可以解决问题,尽管如果变量不存在我会收到警告,所以我需要将它们全部声明。

于 2012-07-27T20:39:34.143 回答
0

我最终放弃了数组,只做 $data['fullName'] = 'some title'; 在控制器和视图中, 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);

?>

于 2014-01-17T18:40:26.587 回答