7
votes

Formulaire soumettre des gestionnaires avec des arguments supplémentaires

Pour certaines exigences, j'ai besoin de passer des informations supplémentaires pour former le gestionnaire de soumission. Dans la forme API, tout en définissant le gestionnaire de soumission personnalisé comme xxx

i s'attendre à soumettre un gestionnaire comme xxx


0 commentaires

3 Réponses :


14
votes

Le gestionnaire de soumission est appelé par le Fapi drupal, vous ne pouvez donc pas faire quelque chose comme ça. Au lieu de cela, ce que vous pouvez faire, c'est ajouter ce dont vous avez besoin, soit au formulaire $ code>, soit sur le $ form_state code>. Les approches habituelles sont les suivantes:

  • Ajout d'un champ sur le formulaire, tapez la valeur pour stocker la valeur. Ne faites pas cela si vous avez la valeur dans la définition de formulaire. P>

    // Validation.
    $form_state['storage']['value'] = $value;
    
    ...
    
    // Submit
    $value = $form_state['storage']['value'];
    // Need to unset stored values when not used anymore.
    unset($form_state['storage']['value']);
    


1 commentaires

Notez qu'à partir de Drupal 6, vous pouvez également simplement stocker des variables arbitraires en $ Formulaire ['# FOO »], tant que« #foo »ne conflit pas d'autre propriété interne de la Forme API.



4
votes

Comme indiqué dans $ Formulaire ['# Soumettre'] et $ Formulaire ['# Valider' ] et $ formulaire ['# processus'] ne prennent plus en charge les paramètres personnalisés , le moyen suggéré de passer des paramètres à un jeu de gestionnaire de soumission, comme dans le code indiqué, c'est utiliser le code similaire à celui suivant:

$form['#first_paramater'] = $value;
$form['#submit'][] = 'my_submit_handler';


0 commentaires

9
votes

Drupal 7: Les arguments personnalisés sont automatiquement propagés déroug $ form_state ['build_info'] ['args'] Ceci est dit dans http://api.drupal.org/api/drupal/ Inclus! form.inc/function/drupal_get_form/7

ex: xxx

puis dans xxx p> ... // $ form_state ['build_info'] ['args'] est une matrice contenant à index 0 la valeur de l'argument $ myAdditionalarg ...


0 commentaires