CI Dropdown Select - PullRequest
       1

CI Dropdown Select

1 голос
/ 13 марта 2012

Кто-нибудь знает, почему с помощью следующего кода я получаю это сообщение об ошибке.Я пытаюсь, чтобы он отображал данные из моего массива, поскольку каждая опция будет иметь значение идентификатора пользователя, а текст этой опции будет их именем.На данный момент отображается только последний человек.

Обнаружена ошибка 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 ]

2 голосов
/ 14 марта 2012

Удалите строку $options[] = $user; из вашего foreach.form_dropdown ожидает массив со значением в качестве ключа и текст в качестве значения.

РЕДАКТИРОВАТЬ: $options должен быть одномерный массив (не 2D-массив).

$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"
2 голосов
/ 14 марта 2012

Из документации: http://codeigniter.com/user_guide/helpers/form_helper.html

Первый параметр будет содержать имя поля , второй параметр будет содержать ассоциативный массив параметров, а третийПараметр будет содержать значение, которое вы хотите выбрать.

Вы передаете ассоциативный массив, и он ожидает строку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...