Formulaire de soumission des gestionnaires avec des arguments supplémentaires
Pour certains exigence j'ai besoin de passer de l'information supplémentaire pour soumettre le formulaire de gestionnaire. Dans la forme de l'api, tout en définissant des gestionnaire de soumission comme
$additional_args = array();
$form['#submit'][] = 'my_submit_handler'
- Je m'attendre à soumettre gestionnaire comme
function my_submit_handler($form, &$form_state, $additional_args){
OriginalL'auteur Shoaib Nawaz | 2010-08-13
Vous devez vous connecter pour publier un commentaire.
Le gestionnaire de soumission est appelé par le drupal reatb, de sorte que vous ne pouvez pas faire quelque chose comme ça. Au lieu de ce que vous pouvez faire est d'ajouter ce dont vous avez besoin, que ce soit à la
$form
, ou à la$form_state
. Les approches habituelles:Ajout d'un champ de formulaire, tapez la valeur à stocker la valeur. Ne pas le faire si vous avez de la valeur dans la définition du formulaire.
Il sera disponible en
$form_state['values']['store']
.Ajouter de la valeur à
$form_state['storage']
, si vous variables dans votre validation de la poignée que vous souhaitez transférer vers votre gestionnaire de soumission:OriginalL'auteur googletorp
Drupal 7: Les arguments sont automatiquement propagées troug $form_state['build_info']['args']
Ce qui est dit dans http://api.drupal.org/api/drupal/includes!forme.inc/fonction/drupal_get_form/7
Ex:
Puis dans
...
//$form_state['build_info']['args']
est un tableau contenant à l'indice 0 de la valeur de l'argument$myAdditionnalArg
...
OriginalL'auteur gipein
Comme indiqué dans $form['#submit'] et $form['#valider'] et $form['#processus'] ne prennent plus en charge les paramètres personnalisés, la manière proposée pour passer des paramètres à une soumission gestionnaire défini comme " dans le code est d'utiliser un code similaire au suivant:
Le gestionnaire de récupérer la valeur que
$form['#first_paramater']
.À remarquer que, au lieu de
#first_paramater
, le code peut utiliser une chaîne de caractère, mais il doit commencer avec#
.Normalement, il n'est pas nécessaire de configurer la présentation de gestionnaire comme le code, mais il y a certains cas où il est nécessaire, comme pour modifier un formulaire créé par un autre module, ou de définir une autre soumission gestionnaire pour chaque de la présentation des boutons présents dans un formulaire.
drupal_retrieve_form() enregistre les paramètres passés à la forme construire gestionnaire dans
$form['#parameters']
qui contient:$form_id
$form_state
OriginalL'auteur kiamlaluno