CI下拉选择

时间:2012-03-13 19:20:57

标签: php codeigniter

任何人都知道为什么使用以下代码我收到此错误消息。我试图让它显示我的数组中的数据,因为每个选项都有一个用户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); ?>

还有其他想法吗?

2 个答案:

答案 0 :(得分:2)

来自文档:http://codeigniter.com/user_guide/helpers/form_helper.html

  

第一个参数将包含字段的名称,第二个参数将包含一个关联的选项数组,第三个参数将包含您希望选择的值。

你正在传递一个关联数组,它期待一个字符串。

答案 1 :(得分:2)

$options[] = $user;删除行foreachform_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"