任何人都知道为什么使用以下代码我收到此错误消息。我试图让它显示我的数组中的数据,因为每个选项都有一个用户id的值,选项的文本将是他们的名字。截至目前,它只显示最后一个人。
遇到PHP错误
严重性:警告
消息:isset中的非法偏移类型或空
文件名:helpers / form_helper.php
行号:319
<?php echo form_label('Recipient', 'recipient'); ?>
<?php
$data = array(
'name' => 'to',
'class' => 'required'
);
foreach($users AS $user)
{
$options = array (
$user->user_id => $user->first_name.' '.$user->last_name
);
}
?>
<?php echo form_dropdown($data, $options); ?>
UDPATE:
<?php echo form_label('Recipient', 'recipient'); ?>
<?php
$data = array(
'name' => 'to',
'class' => 'required'
);
$options = array();
foreach($users AS $user)
{
$options[] = array (
$user->user_id => $user->first_name.' '.$user->last_name
);
$options[] = $user;
}
?>
<?php echo form_dropdown($data, $options); ?>
还有其他想法吗?
答案 0 :(得分:2)
来自文档:http://codeigniter.com/user_guide/helpers/form_helper.html
第一个参数将包含字段的名称,第二个参数将包含一个关联的选项数组,第三个参数将包含您希望选择的值。
你正在传递一个关联数组,它期待一个字符串。
答案 1 :(得分:2)
从$options[] = $user;
删除行foreach
。 form_dropdown
需要一个数组,其值为键,文本为值。
编辑:$options
需要是一维数组(不是二维数组)。
$options = array();
foreach($users AS $user)
{
$options[$user->user_id] = $user->first_name.' '.$user->last_name;
}
编辑2:
$options = array(-1 => 'Select an option'); // Start with a "default option"
foreach($users AS $user)
{
$options[$user->user_id] = $user->first_name.' '.$user->last_name;
}
form_dropdown('to', $options, -1, 'class="required"'); // Make the default "selected"