Tengo una lista selecta con opciones:
$options = array(0 => '0', 500 => '500', 1000 => '1000');
Estoy tratando de establecer su valor predeterminado en 500:
$form['price']['min']['#options'] = $options;
$form['price']['min']['#default_value'] = 500;
Pero esto no funciona.
Respuestas:
Su código debe funcionar, generalmente use el valor clave como valor predeterminado, si no funciona, haga la cadena como claves y úsela como valor predeterminado.
fuente
Nunca he visto este problema. Ese valor predeterminado debería funcionar. Yo diría que intente convertir la clave en una cadena y establecerla
#default_value
como una cadena. La#options
matriz se puede pasar aarray_merge
algún lado, volviendo a escribir claves enteras. Si las claves son cadenas, entonces eso no debería suceder. Actualmente, su matriz se ve así:Pero pasar esa matriz
array_merge
puede reorganizar esas teclas enteras para que estén en orden secuencial:Si eso sucede, la
500
clave simplemente no existe. Esto se debe a quearray_merge
no le gusta conservar las claves de enteros, pero puede usar cadenas para evitarlo. Entonces, creo que su matriz debería verse más así:Entonces puedes configurar tu
#default_value
:De lo contrario, ¿hay algún otro lugar donde
default_value
se pueda anular?fuente
¿Intentaste usar una cadena en lugar de un entero?
Quizás también valga la pena intentar agregar la
'und'
clave.fuente
¿Intentó usar la clave fuera de la matriz $ options para definir el valor predeterminado?
$form['price']['min']['#default_value'] = $options[500];
fuente
Para establecer el valor predeterminado en la lista de selección, utilizamos el parámetro #default_value. El valor del atributo default_value de la lista de selección sería la clave de la matriz de la lista de selección.
fuente
El siguiente código mostrará el campo con su valor predeterminado como 500.
fuente
Me enfrenté al mismo problema e intenté dar el índice de la matriz que quiero que sea el valor predeterminado y funcionó. Mi respuesta es similar a Ashok KS, pero su segunda línea no pude entender.
fuente
arreglado, deberíamos establecer el valor predeterminado primero de esa matriz de $ opciones, si agregamos la última, la clave de matriz cambió [1] => ciencia, [2] => drama, la derecha debería ser [192] => ciencia, [231 ] => drama :-)
fuente
tratar:
$ form ['precio'] ['# default_value'] = 500;
Es un buen trabajo para mí.
fuente
El
#default_value
debería tener sus argumentos en la forma como#value
.fuente
Solo usa
lo que significa que el valor predeterminado tomará la opción 2eme
fuente
SOLUCIÓN: Descubre que form_select_options no maneja
#default_value
en absoluto. Entonces usé#value property
:fuente
#value
hará imposible que el usuario cambie el valor.$_REQUEST['price']['min']
o$my_default_value
. Lo que ponga en el #valor será el valor del campo, independientemente de lo que ingrese el usuario.