Page 1 sur 1

Informations d'un formulaire avant validation

Posté : 28 déc. 2014, 00:05
par Obe25
Bonsoir à tous,

Je viens vers vous car je bloque sur un point et j'aimerais avoir quelques éclaircissements...

En effet, voici mon formulaire :
// instantiate a Zebra_Form object
    $form = new Zebra_Form('form');

    // the label for the "name" element
    $form->add('label', 'label_name', 'name', 'Prénom :');

    // add the "name" element
    $obj = $form->add('text', 'name', '', array('data-prefix'));
	
	// the label for the "name" element
    $form->add('label', 'label_surname', 'surname', 'Nom : ');

    // add the "name" element
    $obj = $form->add('text', 'surname', '', array('data-prefix'));

    // set rules
    $obj->set_rule(array(

        // error messages will be sent to a variable called "error", usable in custom templates
        'required' => array('error', 'Name is required!')

    ));

$id_utilisateur = recuperer_id_utilisateurs();
	// "department"
    $form->add('label', 'label_department', 'department', 'Department:');
    $obj = $form->add('select', 'department', '', array('other' => true));
    $obj->add_options(
        $id_utilisateur);
    $obj->set_rule(array(
        'required' => array('error', 'Department is required!')
    ));
	
    // "submit"
    $form->add('submit', 'btnsubmit', 'Submit');
	// Création d'un tableau des erreurs
	$erreurs_inscription = array();
	
    // if the form is valid
    if ($form->validate()) {
		// Si d'autres erreurs ne sont pas survenues
    if (empty($erreurs_inscription)) {...
J'utilise comme vous pouvez le voir la librairie Zebra_Form. Je charge mes départements correctement à partir d'une requête mais avant de valider j'aimerais bien charger mes villes.
Donc une fois que l'utilisateur aura choisi son département, j'aimerais bien récupérer cette valeur avant d'avoir appuyé sur le "Submit".
Je pense que tout va se faire en javascript mais je n'arrive pas à trouver une solution pour le moment.

Je vous remercie d'avance.

Re: Informations d'un formulaire avant validation

Posté : 28 déc. 2014, 01:57
par Elie
Hello,

Je ne connait pas cette librairie mais là on parle de mettre à jour un select en fonction d'un autre.
Je pense donc qu'il faut passer par une requete AJAX qui appelle un fichier PHP externe avec le nom des villes et donc là rien ne t'empeche de continuer d'utiliser ta librairie pour générer le SELECT des villes.
Parce que la pour l'instant il n'y a pas de SELECT concernant les villes.
J'en rajouterai un avec comme valeur : "Selectionnez d'abord un département".
Ca te permettra de mettre un rule pour obliger de selectionner une ville après que le SELECT soit mis à jour.

Ca te parle l'AJAX ?

Re: Informations d'un formulaire avant validation

Posté : 28 déc. 2014, 11:50
par Obe25
Bonjour !

Merci pour la réponse.

En fait mon principal souci, c'est de récupérer la valeur sélectionnée au niveau du département avant d'avoir validé le formulaire... Car après validation, je vais pouvoir récupérer le POST mais avant validation, pas grand chose...

Et je suis loin d'être un grand connaisseur d'ajax. Je viens de jeter un œil et à priori beaucoup de choses se font après validation.

Re: Informations d'un formulaire avant validation

Posté : 28 déc. 2014, 12:00
par Elie
Le principe de l'AJAX c'est justement de faire des choses avant la validation :)

Moi j'utilise jQuery et la fonction val() : http://api.jquery.com/val/
Donc là si on ne fait pas de validation on est plus sur du javascript que sur du PHP a proprement parlé.

L'AJAX appelera du PHP par la suite mais là on a un autre probleme a regler avant !

Re: Informations d'un formulaire avant validation

Posté : 28 déc. 2014, 12:16
par Obe25
En effet, merci.

Il faut juste que je trouve comment intégrer mon javascript quand une donnée est sélectionnée à ce niveau :
$id_utilisateur = recuperer_id_utilisateurs();
        // "department"
    $form->add('label', 'label_department', 'department', 'Department:');
    $obj = $form->add('select', 'department', '', array('other' => true));
    $obj->add_options(
        $id_utilisateur);
    $obj->set_rule(array(
        'required' => array('error', 'Department is required!')
    ));
Car pour le moment, j'ai l'impression que le javascript n'est lancé qu'au lancement de la page et non à chaque fois que le champ est changé.

Re: Informations d'un formulaire avant validation

Posté : 28 déc. 2014, 12:24
par Elie
Je vais pas te faire un un cours de javascript quand même :)

http://api.jquery.com/change/

[javascript]$("#department" ).change(function() {
alert($(this).val());
});[/javascript]

Re: Informations d'un formulaire avant validation

Posté : 28 déc. 2014, 12:44
par Obe25
Ok merci.

Il va falloir que je reprenne des cours car j'ai bien fait çà pour essayer de récupérer ma valeur mais rien ne se passe...
	$id_utilisateur = recuperer_id_utilisateurs();
	// "department"
    $form->add('label', 'label_department', 'department', 'Department:');
    $obj = $form->add('select', 'department', '', array('other' => true));
    $obj->add_options(
        $id_utilisateur);
    $obj->set_rule(array(
        'required' => array('error', 'Department is required!')
    ));
?>
<script type="text/javascript">
$("#department" ).change(function() {
  alert($(this).val());
});
</script>
<?php

Re: Informations d'un formulaire avant validation

Posté : 28 déc. 2014, 12:48
par Elie
L'exemple sur jQuery est pourtant clair.
Ta page est-elle en ligne quelquepart pour que je vois le code qui est généré ?

Re: Informations d'un formulaire avant validation

Posté : 28 déc. 2014, 12:53
par Obe25
Tout est en local pour le moment... Je vais essayer de voir ce qui peut se passer car à priori, on ne rentre pas dans le script à chaque changement de valeurs...

Re: Informations d'un formulaire avant validation

Posté : 28 déc. 2014, 19:22
par Obe25
Finalement en effectuant des tests avec un formulaire sans passer par la librairie, cela marche sans souci. Il faut que je me penche à présent sur la documentation de la librairie pour voir ce qu'il est possible de faire. Merci pour votre aide.

Re: Informations d'un formulaire avant validation

Posté : 28 déc. 2014, 21:50
par Elie
Tu ne veux pas nous montrer la source et c'est dommage.
Ca se trouve c'est pas le bon iD ou un truc tout con ...

Re: Informations d'un formulaire avant validation

Posté : 28 déc. 2014, 21:53
par tof73
Il va falloir que je reprenne des cours car j'ai bien fait çà pour essayer de récupérer ma valeur mais rien ne se passe...
tu as une erreur javascript dans la console ?
tu as ajouté la ligne d'import du script de jquery ?