J'ai un formulaire simple avec un menu de sélection sur la page d'affichage de noeud. Y at-il un moyen facile de valider le formulaire dans ma fonction de rappel? Par validation, je ne veux rien dire d'avancé, juste pour vérifier que les valeurs existent réellement dans le tableau de forme. Par exemple, sans ajax, si mon menu de sélection a 3 éléments et que j'ajoute un 4ème élément et que j'essaie de soumettre le formulaire, drupal va donner une erreur en disant quelque chose comme "un choix illégal a été fait, contactez l'administrateur".Drupal 6 Validation pour la fonction de rappel de formulaire
Avec ajax ce 4ème article que vous avez créé serait enregistré dans la base de données. Alors, dois-je écrire la validation comme
if ($select_item > 0 && $select_item <= 3) {
//insert into db
}
Ou est-il un moyen plus facile qui va vérifier que l'élément a réellement existé dans le tableau de forme? J'espère qu'il n'y a pas d'ajax, drupal ne soumettra pas le formulaire s'il a été manipulé. Merci.
EDIT: Donc, j'ai fondamentalement besoin de cela dans ma fonction de rappel?
$form_state = array('storage' => NULL, 'submitted' => FALSE);
$form_build_id = $_POST['form_build_id'];
$form = form_get_cache($form_build_id, $form_state);
$args = $form['#parameters'];
$form_id = array_shift($args);
$form_state['post'] = $form['#post'] = $_POST;
$form['#programmed'] = $form['#redirect'] = FALSE;
drupal_process_form($form_id, $form, $form_state);
Pour obtenir $ _POST [ 'form_build_id'], je l'ai envoyé en tant que données param, est-ce pas? Là où j'utilise form_get_cache, on dirait qu'il n'y a pas de données. Un peu perdu maintenant.
Quel est exactement votre objectif? On dirait que vous vous dirigez sur la mauvaise voie ici. – googletorp
Désolé si je ne l'ai pas bien expliqué, mon but est simplement de vérifier que l'option existe dans le formulaire select array et n'a pas été manipulée. Par exemple, disons que mon menu de sélection a 3 éléments, rouge, vert, bleu. Maintenant, quelqu'un tente d'entrer des informations erronées dans ma base de données et ajoute une quatrième option, noire. Si je soumets ce formulaire sans ajax, Drupal saura que le noir n'a jamais existé dans le tableau et dira qu'un choix illégal a été fait. Cependant, si j'utilise ajax avec une fonction de rappel, cette validation de base ne se produit pas, de sorte que la valeur du noir sera insérée. J'espère que cela éclaircira les choses. – Wade