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

  [Opened] Re: Problème validation formulaire

Posted by dlalleme on 12/10/2011 10:40

Bonjour,
En prenant un formulaire qui fonctionne, je rajoute dans le template :

     <input type="hidden" name="action" value="{$action}" />

Et j'ai un beau :

404 Not Found
Sorry, the requested page doesn't exist
Page generated by Jelix.

À l'aide de ma debugbar, je vérifie que tous les "controls" sont bien remplis et voici le code html généré

<div id="formulaire">
<form id="jforms_admin_editos" method="post" action="/index/editoriaux/save">jQuery162020424280267310613=Object { events={...}, handle=function()}
<script type="text/javascript">
//<![CDATA[
jFormsJQ.selectFillUrl='/index?module=jelix&action=jforms:getListData';
jFormsJQ.config = {locale:'fr_FR',basePath:'/',jqueryPath:'/jelix/jquery/',jelixWWWPath:'/jelix/'};
jFormsJQ.tForm = new jFormsJQForm('jforms_admin_editos','admin~editos','0');
jFormsJQ.tForm.setErrorDecorator(new jFormsJQErrorDecoratorHtml());
jFormsJQ.declareForm(jFormsJQ.tForm);
//]]>
</script>
<div class="jforms-hiddens">
<input type="hidden" value="39dbaff23c773760dbea6dc34b7f5744" name="__JFORMS_TOKEN__">
</div>
<fieldset>
<legend> Éditorial</legend>
<p>
<label id="jforms_admin_editos_titre_label" class="jforms-label jforms-required" for="jforms_admin_editos_titre">
<input id="jforms_admin_editos_titre" class="jforms-ctrl-input jforms-required" type="text" value="Le mot du président" maxlength="255" name="titre">
</p>
<p class="date_input">
...
<p class="htmleditor_label">
...
<p>
...
<p class="htmleditor_label">
...
<p>
</fieldset>
<div class="valide">
<input id="usr_validation" type="image" style="width:auto;height:auto;border:none;" onclick="submit();" onmouseout="this.src='/themes/default/images/validez.png'" onmouseover="this.src='/themes/default/images/validezOver.png'" src="/themes/default/images/validez.png" name="usr_validation">
</div>
<input type="hidden" value="I" name="action">
<script type="text/javascript">
//<![CDATA[
(function(){var c, c2;
c = new jFormsJQControlString('titre', 'Titre');
c.maxLength = '255';
c.required = true;
c.errRequired='La saisie de "Titre" est obligatoire';
c.errInvalid='La saisie de "Titre" est invalide';
jFormsJQ.tForm.addControl(c);
c = new jFormsJQControlLocaleDate('date_edito', 'Date de l\'éditorial');
c.lang='fr_FR';
c.required = true;
c.errRequired='La saisie de "Date de l\'éditorial" est obligatoire';
c.errInvalid='La saisie de "Date de l\'éditorial" est invalide';
jelix_datepicker_default(c, jFormsJQ.config);
jFormsJQ.tForm.addControl(c);
c = new jFormsJQControlHtml('contenu', 'Contenu de l\'éditorial');
c.required = true;
c.errRequired='La saisie de "Contenu de l\'éditorial" est obligatoire';
c.errInvalid='La saisie de "Contenu de l\'éditorial" est invalide';
jFormsJQ.tForm.addControl(c);
jelix_ckeditor_ckfull("jforms_admin_editos_contenu","jforms_admin_editos","default",jFormsJQ.config);
c = new jFormsJQControlHtml('note', 'Note');
c.errInvalid='La saisie de "Note" est invalide';
jFormsJQ.tForm.addControl(c);
jelix_ckeditor_ckbasic("jforms_admin_editos_note","jforms_admin_editos","default",jFormsJQ.config);
})();
//]]>
</script>
</form>
</div>

Voilà bon week end
Cordialement
Denis

  [Opened] Re: Problème validation formulaire

Reply #1 Posted by foxmask on 12/10/2011 21:00

Hé bien comment dire ...

Pourquoi le champ hidden est ajouté "manuellement" dans le template avec <input type="hidden"... et pas dans le fichier editos.form.xml du module admin de ce formulaire

On aurait 0 problème dans ce cas là.

nota : pour identifier que ceci n'est pas généré par Jelix :

<input type="hidden" value="I" name="action">

il suffit de se rendre compte qu'il manque l'id du champ style jforms_admin_editos_monchampcache


@GitHub - Forum HaveFnuBB! powered by Jelix - Le Booster Jelix !

  [Opened] Re: Problème validation formulaire

Reply #2 Posted by dlalleme on 12/11/2011 09:58

foxmask a dit :
Hé bien comment dire ...

Pourquoi le champ hidden est ajouté "manuellement" dans le template avec <input type="hidden"... et pas dans le fichier editos.form.xml du module admin de ce formulaire

Parce que ça ne marche pas non plus. Mais je vais le faire et t'envoyer le résultat html. Je suppose que tu ne veux que la partie html générée avec les tags form et hidden


On aurait 0 problème dans ce cas là.

nota : pour identifier que ceci n'est pas généré par Jelix :

<input type="hidden" value="I" name="action">

il suffit de se rendre compte qu'il manque l'id du champ style jforms_admin_editos_monchampcache

Oui, je sais cela ... De plus le champ action, est juste une info pour indiquer que le formulaire est en création ou édition de l'enregistrement. Donc action n'est pas basé.
J'ai commencé mon premier formulaire pour la création donc sans champ hidden puis je l'ai adapté pour la modification. Donc il m'a fallu ajouter des champs caché pour indiquer d'où je venais. J'ai essayé par le jform puis "manuellement" puis de nouveau jform, puis en passant l'identifiant par l'action du formulaire en vain.
Voilà, à suivre mais je suis persuadé qu'il y a un problème dans ma config mais what ?
À bientôt
Denis

  [Opened] Re: Problème validation formulaire

Reply #3 Posted by dlalleme on 12/11/2011 11:07

me revoilà,

Bon j'écris maintenant la méthode jform.

J'ajoute dans ma form :

<hidden ref="action" />

Dans ma zone :

 $form->setData('action', $action);

Et ça plante encore ! voici le code HTML

<div id="formulaire">
<form id="jforms_admin_editos" method="post" action="/index/editoriaux/save">jQuery16206800960391405637=Object { events={...}, handle=function()}
<script type="text/javascript">
//<![CDATA[
jFormsJQ.selectFillUrl='/index?module=jelix&action=jforms:getListData';
jFormsJQ.config = {locale:'fr_FR',basePath:'/',jqueryPath:'/jelix/jquery/',jelixWWWPath:'/jelix/'};
jFormsJQ.tForm = new jFormsJQForm('jforms_admin_editos','admin~editos','0');
jFormsJQ.tForm.setErrorDecorator(new jFormsJQErrorDecoratorHtml());
jFormsJQ.declareForm(jFormsJQ.tForm);
//]]>
</script>
<div class="jforms-hiddens">
<input id="jforms_admin_editos_action" type="hidden" value="I" name="action">
<input type="hidden" value="22d35faafdc3035ec3a24efbf6bfc3d0" name="__JFORMS_TOKEN__">
</div>
<fieldset>
........
<div class="valide">
<input id="usr_validation" type="image" style="width:auto;height:auto;border:none;" onclick="submit();" onmouseout="this.src='/themes/default/images/validez.png'" onmouseover="this.src='/themes/default/images/validezOver.png'" src="/themes/default/images/validez.png" name="usr_validation">
</div>
<script type="text/javascript">
//<![CDATA[
(function(){var c, c2;
c = new jFormsJQControlString('titre', 'Titre');
c.maxLength = '255';
c.required = true;
c.errRequired='La saisie de "Titre" est obligatoire';
c.errInvalid='La saisie de "Titre" est invalide';
jFormsJQ.tForm.addControl(c);
c = new jFormsJQControlLocaleDate('date_edito', 'Date de l\'éditorial');
c.lang='fr_FR';
c.required = true;
c.errRequired='La saisie de "Date de l\'éditorial" est obligatoire';
c.errInvalid='La saisie de "Date de l\'éditorial" est invalide';
jelix_datepicker_default(c, jFormsJQ.config);
jFormsJQ.tForm.addControl(c);
c = new jFormsJQControlHtml('contenu', 'Contenu de l\'éditorial');
c.required = true;
c.errRequired='La saisie de "Contenu de l\'éditorial" est obligatoire';
c.errInvalid='La saisie de "Contenu de l\'éditorial" est invalide';
jFormsJQ.tForm.addControl(c);
jelix_ckeditor_ckfull("jforms_admin_editos_contenu","jforms_admin_editos","default",jFormsJQ.config);
c = new jFormsJQControlHtml('note', 'Note');
c.errInvalid='La saisie de "Note" est invalide';
jFormsJQ.tForm.addControl(c);
jelix_ckeditor_ckbasic("jforms_admin_editos_note","jforms_admin_editos","default",jFormsJQ.config);
})();
//]]>
</script>
</form>
</div>

J'aimerai pouvoir traquer le code entre le clic de la souris et le message 404. Mais je ne sais pas trop comment le faire dans le code Jelix.

Merci Bon dimanche
Denis

  [Opened] Problème validation formulaire

Reply #4 Posted by foxmask on 12/12/2011 13:31

dès lors qu'on a la debugbar il suffit de faire des jLog::dump($var); dans son code, aux endroits appropriés, pour que le résultat s'affiche dans la debugbar à son tour.


@GitHub - Forum HaveFnuBB! powered by Jelix - Le Booster Jelix !

  [Opened] Re: Problème validation formulaire

Reply #5 Posted by dlalleme on 12/12/2011 19:08

Bonjour,
Oui, je connais ces outils de debug mais j'ai tout exploré en ce qui concerne ma partie.
Cordialement
Denis

  [Opened] Problème validation formulaire

Reply #6 Posted by laurentj on 12/13/2011 20:36

Attention ! Les paramètres de nom "module" et "action" sont réservés dans Jelix ! Ils indiquent respectivement le module et le contrôleur à utiliser. Si tu utilises un champs (caché ou pas) de même nom, Jelix va essayer de charger l'action indiquée, mais comme elle n'existe pas ("I" dans ton exemple), forcément, tu obtiens un 404.

  [Opened] Re: Problème validation formulaire

Reply #7 Posted by dlalleme on 12/14/2011 00:07

Bonsoir,

Je me disais bien aussi que devait un truc comme ça. Bon j'essaie demain (tout à l'heure) et vous tiens au courant.

Merci Bonne nuit ! Cordialement Denis

  [Opened] Re: Problème validation formulaire

Reply #8 Posted by dlalleme on 12/14/2011 09:23

Bonjour,

Ah ces mots-réservés ! Plus d'un s'est fait prendre et d'autres s'y feront encore !
Il faut que je bannisse ce nom de variable de mes développements !

Encore merci
Denis

 
Page
  1. Re: Problème validation formulaire