Quick links: Content - sections - sub sections
EN FR
Quick Search Advanced search
 
Page

  [Opened] [Résolu] jForm et defaultValue

Posted by benjamin on 02/18/2008 19:18

Bonjour,

je ne sais pas si c'est corrigé dans la dernière version mais je préfère le signaler. Quand je précise une "defaultvalue" dans mon jform, celle-ci n'est pas prise en compte dans le code html généré... J'ai l'impression qu'il y a déjà eu des tickets à ce propos donc je ne sais plus trop où on en est. J'ai remarqué que dans la classe : jFormsBuilderBase, la fonction suivante ne fait pas tout fait ce qu'il faut :

 function outputControl($ctrl){
 ...
        case 'input':
            $value = $this->_form->getData($ctrl->ref);
 ...
 }

au lieu de faire quelque chose du genre :

 $value = $this->_form->getData($ctrl->ref); 
 if(empty($value))
    $value = $ctrl->defaultValue; 

De plus, dans la doc on parle de l'attribut "defaultValue" à utiliser dans les paramètres d'un contrôle. Hors cela ne fonctionne pas malgré la correction ci-dessus. Il faut utiliser à la place l'attribut : "defaultvalue" tout en minuscule...

Merci


Jelix 1.0.2 - mise en production réussie : http://www.autolux.ca

  [Opened] Re: jForm et defaultValue

Reply #1 Posted by laurentj on 02/18/2008 23:59

Bonjour,

Quand je précise une "defaultvalue" dans mon jform, celle-ci n'est pas prise en compte dans le code html généré

la prise en compte de la valeur de defaultvalue fonctionne très bien dans les dernières versions. Peut être fais tu une mauvaise manip quelque part ? Tu fais bien un jForms::create quand tu veux une nouvelle instance du formulaire ?

J'ai remarqué que dans la classe : jFormsBuilderBase, la fonction suivante ne fait pas tout fait ce qu'il faut

si, elle fait tout ce qu'il faut : elle affiche les valeurs qu'on lui demande. Ta correction a un problème plutôt génant : si l'utilisateur avait intentionnellement supprimé la valeur dans le champs de saisie, et qu'après le submit on réaffiche le formulaire pour une raison ou pour une autre (genre une erreur dans un des champs), le champs vidé sera à nouveau rempli. Pas cool ;-)

Ce n'est pas au builder de décider les valeurs à afficher.

Les valeurs des champs sont initialisées avec les valeurs par défaut seulement lors de la création du formulaire (lors d'un addControl plus exactement, effectué dans le constructeur de la classe générée correspondante au fichier xml), donc lors d'un jForms::create.

De plus, dans la doc on parle de l'attribut "defaultValue" à utiliser dans les paramètres d'un contrôle. Hors cela ne fonctionne pas malgré la correction ci-dessus. Il faut utiliser à la place l'attribut : "defaultvalue" tout en minuscule...

La doc est un wiki... ;-)

  [Opened] Re: jForm et defaultValue

Reply #2 Posted by benjamin on 02/19/2008 00:28

Merci laurent pour toutes ces explications. Je pense qu'à force de faire des "refresh" etc., le formulaire n'était pas forcément détruit etc. et du coup je n'avais pas un comportement correct. En repartant à 0 (nouvelle session) j'ai bien obtenu le résultat escompté ;-) Pour l'histoire de la majuscule à Value en effet je ne le vois pas non plus... j'étais persuadé de l'avoir vu... autant pour moi!


Jelix 1.0.2 - mise en production réussie : http://www.autolux.ca

 
Page
  1. Re: jForm et defaultValue