Tenho lista de seleção com opções:
$options = array(0 => '0', 500 => '500', 1000 => '1000');
Estou tentando definir o valor padrão para 500:
$form['price']['min']['#options'] = $options;
$form['price']['min']['#default_value'] = 500;
Mas isso não funciona.
Respostas:
Seu código deve funcionar, geralmente use o valor da chave como valor padrão, se não estiver funcionando, faça a string como chaves e use-a como valor padrão.
fonte
Eu nunca vi esse problema. Esse valor padrão deve funcionar. Eu diria que tente fazer da chave uma string e definir
#default_value
como uma string. A#options
matriz pode estar sendo passada porarray_merge
algum lugar, reaplicando chaves inteiras. Se chaves são strings, isso não deve acontecer. Atualmente, sua matriz fica assim:Mas passar essa matriz
array_merge
pode reorganizar essas chaves inteiras para estar em ordem seqüencial:Se isso acontecer, a
500
chave simplesmente não existe. Isso ocorre porquearray_merge
não gosta de preservar chaves inteiras, mas você pode usar cadeias de caracteres para evitá-lo. Então, acho que sua matriz deve se parecer mais com isso:Então você pode definir o seu
#default_value
:Caso contrário, existe algum outro lugar em que o
default_value
item possa estar sendo substituído?fonte
Você tentou usar uma string em vez de um número inteiro?
Talvez também valha a pena tentar adicionar a
'und'
chave.fonte
Você tentou usar a chave fora das opções $ da matriz para definir o valor padrão?
$form['price']['min']['#default_value'] = $options[500];
fonte
Para definir o valor padrão na lista de seleção, usamos o parâmetro #default_value. O valor do atributo default_value da lista de seleção seria a chave da matriz da lista de seleção.
fonte
O código a seguir mostrará o campo com seu valor padrão como 500.
fonte
Eu enfrentei o mesmo problema e tentei dar o índice da matriz que eu quero que seja o valor padrão e funcionou. Minha resposta é semelhante à Ashok KS, mas sua segunda linha eu não conseguia entender.
fonte
fixo, devemos definir o valor padrão primeiro dessa matriz de opções $, se adicionarmos por último, a chave da matriz mudou [1] => science, [2] => drama, a direita deve ser [192] => science, [231 ] => drama :-)
fonte
experimentar:
$ form ['price'] ['# default_value'] = 500;
É um trabalho bom para mim.
fonte
O
#default_value
deveria ter seus argumentos no formulário como o#value
.fonte
Apenas use
o que significa que o valor padrão usará a opção 2eme
fonte
SOLUÇÃO: Descobrir que form_select_options não é compatível
#default_value
. Então eu usei#value property
:fonte
#value
parâmetro também tornará impossível ao usuário alterar o valor.$_REQUEST['price']['min']
ou$my_default_value
. O que você colocar no #value será o valor do campo, independentemente do que o usuário inserir.