2011-07-23 21 views
9

Estoy tratando de averiguar cómo agregar una opción deshabilitada en mi menú desplegable, usando codeIgniter. Nuevo en CI, y he intentado buscar en Google un poco, pero no pude encontrar una respuesta.Agregar la opción deshabilitada en codeigniter form_dropdown

Mi código para un desplegable se ve así:

echo form_dropdown('category', array('0' => 'Choose a category...') + $categories, '0'); 

Esto me da una lista desplegable con todas mis opciones de las categorías variable $, con "Elija una categoría ..." (valor 0) en la parte superior . Ahora, ¿cómo puedo desactivar el primero? Sé cómo hacer que seleccione uno específico, que lo he configurado aquí.

¿Alguien me puede ayudar? Gracias

Respuesta

-1

Desde la guía del usuario CI en http://codeigniter.com/user_guide/helpers/form_helper.html:

Si desea la apertura de contener datos adicionales, como un atributo id o JavaScript, puede pasar como una cadena en el cuarto parámetro:

Así que el código se convierte en:

echo form_dropdown('category', array('0' => 'Choose a category...') + $categories, '0', 'disabled="disabled"'); 

Sin embargo, a menos que seas un fanático de PHP o está utilizando la protección CSRF a través de la Como ayudante, simplemente escribiré tu formulario html tú mismo. Es la misma cantidad de texto y está utilizando menos funciones.

+2

Gracias por la respuesta. Al agregar 'disabled =' disabled '' hasta el final, toda la lista de selección queda deshabilitada. Solo quiero que la primera opción (valor 0) quede deshabilitada, por lo que no puede elegir la opción "Elegir una categoría ...". Sí, tal vez debería escribir el formulario yo mismo, a menos que haya una solución para esto. – beholder

+0

Pruebe grupos de opciones, sin embargo, no están visibles cuando la selección no está abierta: http://www.w3schools.com/tags/tag_optgroup.asp – sqwk

+0

Hago lo siguiente: No doy a la primera opción un valor ' 'y use la biblioteca de validación de formularios para hacer que seleccione un campo obligatorio. – sqwk

0

Si aún desea usar form_helper, siempre puede extender el archivo auxiliar y hacer que la etiqueta 'disable' esté disponible. Cree MY_Form_helper.php y póngalo en el directorio auxiliar, luego defina la función form_dropdown en ese helper personalizado, luego se superpondrá al comportamiento del helper de formularios.

1

Sé que esta es una publicación anterior, pero en la versión actual de CI, puedo hacer un pequeño truco (inyección similar a sql) al agregar " disabled="disabled a las teclas de la opción que me gustaría deshabilitar.

$categories['0'] = '(Select Category)'; 
$categories['1'] = 'Category 1'; 
$categories['2" disabled="disabled'] = 'Restricted Category'; 
$categories['3'] = 'Category 3'; 

echo form_dropdown('category', $categories, '0'); 

No estoy seguro de si se trata de un error de form_helper de CI, ya que no hace ninguna función escapar o desinfección de las claves/valores desplegables. Por el momento, para estar seguro, solo asegúrese de que sus claves y valores no provengan de ninguna entrada basada en el usuario.

0

Si usted tiene algunas opciones estáticas solamente la variable $ opciones puede ser una cadena simple también, que contiene las opciones en formato html, así:

$options = " 
<option value=0 disabled>Select Category</option> 
<option value=1>Category 1</option> 
<option value=2>Category 2</option>"; 

echo form_dropdown('category', $options, '0'); 
1

Sólo tiene que añadir el cuarto parámetro $ extra a su desplegable como una cadena como esta 'desactivado = desactivado' como se explica en CI Docs en https://codeigniter.com/user_guide/helpers/form_helper.html#available-functions

echo form_dropdown('category', array('0' => 'Choose a category...') + $categories, '0', 'disabled=disabled'); 
+1

Esto hace que el '