J'ai une liste de sélection avec des options:
$options = array(0 => '0', 500 => '500', 1000 => '1000');
J'essaie de définir sa valeur par défaut à 500:
$form['price']['min']['#options'] = $options;
$form['price']['min']['#default_value'] = 500;
Mais ça ne marche pas.
Réponses:
Votre code doit fonctionner, utilisez généralement la valeur de clé comme valeur par défaut, s'il ne fonctionne pas, créez la chaîne comme clés et utilisez-la comme valeur par défaut.
la source
Je n'ai jamais vu ce problème. Cette valeur par défaut devrait fonctionner. Je dirais essayer de faire de la clé une chaîne et de la définir
#default_value
comme une chaîne. Le#options
tableau peut être en cours de passagearray_merge
quelque part, recomposant ainsi les clés entières. Si les clés sont des chaînes, cela ne devrait pas se produire. Actuellement, votre tableau ressemble à ceci:Mais le passage de ce tableau
array_merge
peut réorganiser ces clés entières pour qu'elles soient dans un ordre séquentiel:Si cela se produit, la
500
clé n'existe tout simplement pas. En effet,array_merge
n'aime pas conserver les clés entières, mais vous pouvez utiliser des chaînes pour l'empêcher. Donc, je pense que votre tableau devrait ressembler davantage à ceci:Ensuite, vous pouvez définir votre
#default_value
:Sinon, y a-t-il ailleurs où le
default_value
peut être annulé?la source
Avez-vous essayé d'utiliser une chaîne au lieu d'un entier?
Peut-être vaut-il aussi la peine d'essayer d'ajouter la
'und'
clé.la source
Avez-vous essayé d'utiliser la clé des options $ du tableau pour définir la valeur par défaut?
$form['price']['min']['#default_value'] = $options[500];
la source
Afin de définir la valeur par défaut dans la liste de sélection, nous utilisons le paramètre #default_value. La valeur de l'attribut default_value de la liste de sélection serait la clé du tableau de liste de sélection.
la source
Le code suivant affichera le champ avec sa valeur par défaut 500.
la source
J'ai fait face au même problème et j'ai essayé de donner l'index du tableau que je veux être la valeur par défaut et cela a fonctionné. Ma réponse est similaire à Ashok KS mais sa deuxième ligne je ne pouvais pas comprendre.
la source
fixe, nous devrions définir la valeur par défaut en premier de ce tableau $ option, si nous avons ajouté en dernier, la clé du tableau a changé [1] => science, [2] => drama, la droite devrait être [192] => science, [231 ] => drame :-)
la source
essayer:
$ form ['price'] ['# default_value'] = 500;
C'est bon pour moi.
la source
Le
#default_value
devrait avoir ses arguments sous la forme du#value
.la source
Utilisez simplement
ce qui signifie que la valeur par défaut prendra l'option 2eme
la source
SOLUTION: découvrez que form_select_options ne gère pas
#default_value
du tout. J'ai donc utilisé#value property
:la source
#value
empêchera également l'utilisateur de modifier la valeur.$_REQUEST['price']['min']
ou$my_default_value
. Tout ce que vous mettez dans la valeur # sera la valeur du champ indépendamment de ce que l'utilisateur saisit.