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

  [Opened] [[résolu]] Problème validation formulaire

Posted by dlalleme on 12/08/2011 20:32

Bonjour,

jelix 1.3dev

J'ai un petit problème de validation d'un formulaire tout frais.
Je crée une form puis dans mon template j'affiche celle-ci.
Le formulaire fonctionne et s'affiche parfaitement mais produit une mauvaise URL action et ne veut pas aller vers mon action de sauvegarde.
Dans le template :

{form $form, 'admin~membres:save'}

dans le formulaire généré, j'ai action = "/index"

form id="jforms_admin_membres" enctype="multipart/form-data" method="post" action="/index"

Au niveau de urlengine dans le fichier de profil :

engine=significant
enableParser=on
multiview=on

Tous mes autres liens URL fonctionnent sauf pour la validation du formulaire.
Je ne sais plus où et comment chercher pour trouver l'erreur (problème); cela fait 4 heures que je tourne en rond avant de vous demander de l'aide.
J'espère avoir été clair !

Merci
Cordialement
Denis

  [Opened] Problème validation formulaire

Reply #1 Posted by foxmask on 12/08/2011 20:46

Bonsoir,

c'est bête comme chou.

avec le moteur d'url significant quand l'action du formulaire est bonne (ce qui est le cas là sinon Jelix dirait ne pas trouver le controleur ou l'action) ca vient quasiment toujours du mapping dans le fichier urls.xml

au pif je dirai que le mapping est fait pour admin~membres:save mais pas sur le bon entry point.

En tout cas ça tourne autour de ca ;)

nota : ne pas oublier de vider son cache quand on modifie le fichier urls.xml


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

  [Opened] Re: Problème validation formulaire

Reply #2 Posted by dlalleme on 12/08/2011 21:08

Bonsoir foxmask,

Dans mon formulaire html généré, j'ai ceci

<div class="jforms-hiddens">
<input type="hidden" value="admin" name="module">
<input type="hidden" value="membres:save" name="action">
<input id="jforms_admin_membres_action" type="hidden" value="I" name="action">
<input id="jforms_admin_membres_idx_mem" type="hidden" value="0" name="idx_mem">
<input id="jforms_admin_membres_idx_adr" type="hidden" value="0" name="idx_adr">
<input type="hidden" value="3fcdadc34175901980795f82bd440819" name="__JFORMS_TOKEN__">
</div>

Dans mon urls.xml, j'ai ceci :

<?xml version="1.0" encoding="utf-8"?>
<urls xmlns="http://jelix.org/ns/urls/1.0">
    <entrypoint type="classic" name="index" default="true">
        <url pathinfo="/" module="admin" action="default:index"></url>
        <url pathinfo="/membres" module="admin" action="membres:index"></url>
        <url pathinfo="/membres/create" module="admin" action="membres:create"></url>
        <url pathinfo="/membres/edit/:idx_mem" module="admin" action="membres:edit">
					<param name="idx_mem"   type="number" />
        </url>
        <url pathinfo="/editoriaux" module="admin" action="editoriaux:index"></url>
        <url pathinfo="/editoriaux/create" module="admin" action="editoriaux:create"></url>
        <url pathinfo="/editoriaux/edit/:idx_edi" module="admin" action="editoriaux:edit">
					<param name="idx_edi"   type="number" />
        </url>
    </entrypoint>
</urls>

Je suis désolé mais je n'ai pas compris la réponse.
Dois-je créer une ligne <url pathinfo="/membres/save" module="admin" action="membres:save"></url> ?

À bientôt
Denis

  [Opened] Re: Problème validation formulaire

Reply #3 Posted by dlalleme on 12/08/2011 22:45

Bonsoir,

J'ai compris mon problème.
Le fait de mettre des input hidden dans les formulaires empêche le lien.
Mon premier formulaire fonctionnait bien jusqu'à ce que j'y implante des champs <hidden>.
Donc comme j'avais fait pas mal de modifications, j'ai eu du mal à cerner "la chose" !

Est-ce un bug ? En tout cas, pour l'instant, je vais faire sans champ caché !

A+ Cordialement Denis

  [Opened] Re: Problème validation formulaire

Reply #4 Posted by foxmask on 12/09/2011 10:07

dlalleme a dit :

Dois-je créer une ligne <url pathinfo="/membres/save" module="admin" action="membres:save"></url> ?

oui

sinon l'action par défaut est produite.


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

  [Opened] Problème validation formulaire

Reply #5 Posted by laurentj on 12/09/2011 10:55

Bonjour,

Dois-je créer une ligne <url pathinfo...

Si tu utilises le moteur significant, toutes les actions de tout tes contrôleurs doivent avoir une URL.

  [Opened] Re: Problème validation formulaire

Reply #6 Posted by dlalleme on 12/09/2011 14:24

Bonjour,

Merci à vous deux pour la même réponse ...
Mais cela ne règle pas le problème des champs cachés

Pour l'instant j'utilise les sessions au lieu des champs cachés mais cela ne me satisfait pas vraiment!
Cordialement Denis

  [Opened] Re: Problème validation formulaire

Reply #7 Posted by foxmask on 12/09/2011 15:19

Bonjour,

il n'y a pas de rapport avec les hidden et les urls.xml.

Quand on créé un form, les hidden sont vides, quand on édite une donnée il faut les remplir avec l'affichage via un $form->setData('monhidden',$value) mais ça, ça n'a tjs pas d'incidence sur l'url générée dans l'action du form.


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

  [Opened] Re: Problème validation formulaire

Reply #8 Posted by dlalleme on 12/09/2011 18:43

foxmask a dit :
Bonjour,

il n'y a pas de rapport avec les hidden et les urls.xml.

Oui, je sais. Les deux notions étaient mélangées car j'avais des difficultés à cerner le problème.
les urls.xml -> c'est réglé !!!


Quand on créé un form, les hidden sont vides, quand on édite une donnée il faut les remplir avec l'affichage via un $form->setData('monhidden',$value) mais ça, ça n'a tjs pas d'incidence sur l'url générée dans l'action du form.

Mon problème à l'instant est mon incapacité d'utiliser les champs cachés car leur utilisation me répond 404 à la validation du formulaire, donc à l'appel de l'action de sauvegarde de celui-ci. C'est une technique (hidden) que je connais et utilise toujours dans mes formulaires. Le plantage survient lorsque j'implante un champ hidden via la jform ou directement dans le formulaire. Dès que je les enlève, le formulaire fonctionne parfaitement. Donc pour l'instant, je suis réduit aux SESSIONS 8(
Je ne sais pas si cela peut venir d'un problème de config au niveau de apache, php ou dans la config de jelix
Si vous avez des idées concernant cette problématique, je suis preneur
Merci

Cordialement
Denis

  [Opened] Re: Problème validation formulaire

Reply #9 Posted by foxmask on 12/09/2011 21:32

là c'est différent. une 404 est différent de toujours tomber sur /index

si c'est lors de la validation ; probable que dans la méthode save on ait une vérification du genre

if (!$form->check()) {
   $rep->action = 'error~404';
   return $rep:
}

si jelix ne permet pas de valider le formulaire c'est bien parce qu'avant de soumettre les données ; les champx hidden doivent être remplis (comme je l'avais mis précédemment) d'une part, et d'autre part parce que ces champs hidden sont probablement definis dans la DAO comme non null.

Mais en mettant le code ici on pourra tirer tout ça au clair ;)


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

 
Page
  1. Re: Problème validation formulaire