我正在尝试创建一个编辑页面,其中从数据库中填充表单字段。我试图通过设置一些随机文本来实现它,但是我无法将其显示出来。
我的控制器中有以下内容:
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页面时,占位符仍然显示,值为空。为什么不设置?当我用它进行表单验证时,它工作正常。
答案 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;