hello,
bon je m'en suis sorti par une pirouette, mais si quelqu'un avait une explication ca m'interesse...
alors voici la situation : je fais une gestion de contrats d'assurance, plus precisement la saisie d'un contrat avec plusieurs ecrans :
- selection du client
- selection du type de contrat
- saisie du contrat
- enregistrement et visu
pour ce faire, il faut savoir que j'ai entre 15 et 20 types de contrats differents. chaque contrat a la meme structure, c'est a dire une partie de squelette que j'appelle "generale" commune a tous les contrats, puis une autre partie "specifique" a chaque contrat.
donc en clair, ma page php inclue dabord la partie generale du squelette, puis suivant le type de contrat choisi, j'inclue la seconde partie specifique.
la ou j'ai mon souci c'est pour la validation et la serialisation du formulaire genere complet. forcement puisque la structure change, il faut changer la fonction de validation pour coller au squelette specifique. j'ai donc mis un switch sur le type contrat pour rebalancer la focntion correspondante lors de la validation du formulaire.
tout ca fonctionne au poil
bon alors ou est le probleme...
la validation :
en effet, j'ai 2 fonctions de valid, celle qui est appelee directement au submit est une fonction de verif qui va declencher une autre fonction qui va cecker si toute la partie "general" est ok, puis celle ci doit renvoyer le resultat a la fonction initialement appelee qui s'il n'y a pas d'erreur continue par le "specifique". dans le cas contraire : return false... logique...
donc voila ce que j'avais fait dasn la fct appelee par le form (je met que le debut...) :
1. function Valid_PnoCno(form) {
2.
3. // si la verif du squel general passe, on verif pno cno et on shrink
4.
5. if (!Valid_SquelGen(form)) {
6.
7. return false;
8.
9. } else {
10.
11.
voila voila !!! comme vous l'aurez compris, lorsquelle est appelee, elle va declencher dab la verif du general, si ca passe pas ca s'arrete et sinon ca continue par la verif des autres champs specifiques au type contrat.
mais le blem dans tout ca c'est que la fonction de verif du general, meme si tout est ok et que ca passe, me rnvoit tjrs false !!!! j'ai tout piste, valeur par valeur, et pas moyen.
donc la soluce que j'ai trouve dans l'autre fonction est de declarer une variable "boulettes" et de la mettre a 0 au debut, puis sur chaque test, s'il y a un return false, je l'incremente. a la fin de la verif du general, j'alert ma valeur de boulettes et si elle est a 0 alors je fais une return true, sinon return false.
du coup la forcement ca marche.... mais bon ..... bricolage quand tu nous tiens....
jvoudrais comprendre pkoi ca chie, car dans mon general il n'y a aucun return true ca daccord, c juste de la verif genre : si machin est vide alors alert + return false et ca sur 20 champs. donc forcement a la fin de la fonction, je vais pas mettre un return true sinon meme en cas de merde ca renverra true, c pas le but...
ou alors c moi qui me plante et je devrais mettre un retrun true en derniere ligne pour que si pas de return false avant, le return true passe...
euh... me suis je fait comprendre ????
si vous avez une explication c cool