Soumission valeurs Post dans Drupal 7
Je vais avoir des problèmes d'accès à la valeur postée après la soumission d'un formulaire avec Drupal 7.
Dire que j'ai un simple formulaire avec un champ de texte et un bouton envoyer.
function sample_form($form, &$form_state){
$form['sample']['name'] = array(
'#description' => 'Name',
'#value' => 'Name',
'#type' => 'textfield',
);
$form['sample']['sample_submit'] = array(
'#type' => 'submit',
'#value' => 'SUBMIT',
'#submit' => array('sample_form_submit')
);
}
et puis mon gestionnaire de soumission, qui est destiné à afficher la valeur que l'utilisateur a entré dans le champ.
function sample_form_submit($form, &$form_state){
drupal_set_message($form_state['values']['name']);
}
Cependant, le message contient toujours la valeur par défaut pour le champ, dans ce cas, 'nom'. Si je rentre "Mike" et cliquez sur envoyer, le message affiche "nom" (valeur par défaut).
Comment puis-je obtenir les valeurs soumises? Je sais que je peux y accéder avec
$form_state['input']['name']
mais ma compréhension est que le ci-dessus donne moi la première, unsanitized $_POST données.
J'ai besoin que l'utilisateur a entré une valeur, comment puis-je l'obtenir? Je suis vraiment pas claire sur le processus d'obtention de l'utilisateur soumis de données à l'aide de drupal formes de l'API.
Merci pour toute aide!
OriginalL'auteur John | 2011-11-01
Vous devez vous connecter pour publier un commentaire.
C'est parce que vous êtes à l'aide de
#value
au lieu de#default_value
pour le champ de texte. À l'aide de l'ancien va toujours remplacer la valeur fournie par l'utilisateur. Vous avez juste besoin de modifier votre code:Cela n'est vrai que pour les éléments qui fait prendre dans une saisie de la valeur. Par exemple,
#value
est toujours la bonne clé à utiliser pour les entrées, les boutons submit, etc. Sélectionnez les listes, cases à cocher, etc. aurez également besoin d'utiliser#default_value
ou vous ne serez jamais soumis par l'utilisateur de données.Découvrez la Drupal REATB de référence dans le cas où vous ne l'avez pas vu.
OriginalL'auteur Clive