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_valuecomo una cadena. La#optionsmatriz se puede pasar aarray_mergealgú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_mergepuede reorganizar esas teclas enteras para que estén en orden secuencial:Si eso sucede, la
500clave simplemente no existe. Esto se debe a quearray_mergeno 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_valuese 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_valuedeberí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_valueen absoluto. Entonces usé#value property:fuente
#valuehará 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.