Javascript [urgent]

kathou Messages postés 80 Statut Membre -  
DaNot Messages postés 221 Statut Membre -
Bonjour à vous tous!

Voici mon problème :

Si je fait une fonction en javascript pour valider mon formulaire qui se trouve sur une autre page HTML est-ce que je dois passer en paramètre la propriété name du formulaire ou je dois passer en paramètre le cadre (fieldset (propriété Name)) ou se trouve mon formulaire parce que la validation de mon formulaire se fait sur une autre page.

Merci d'avance à tous ceux qui pourront m'aider.

Kathou

12 réponses

DaNot Messages postés 221 Statut Membre 163
 
Salut kathou,

Je vois que tes problèmes Javascript sont toujours urgents ! ;-)

Peux-tu préciser ta question ? L'autre page HTML contenant le formulaire est-elle une frame ?
Et puis, un petit exemple, si tu as ...

DaNot
0
kathou Messages postés 80 Statut Membre 24
 
Effectivement mon problème est urgent c'est pour le travail et ça fait un bail que je travaille deçu.

mon formulaire n'est pas dans un frame il est dans un cadre de type fieldset.

Est-ce que je dois le mettre dans un IFrame?

Voici un petit bout de mon formulaire et un petit bout de ma fonction javascript.

<form method="POST" action="pour_qui.html" name="genre" target="PourQui">
<fieldset style="width: 629; height: 514; padding: 2" name="typeRapport">

.... Tous mes checkbox qui sont dans un tableau .........

<a href="pour_qui.html">
<input type="submit" value="Suivant" name="B1" </a></p>
</form>
</fieldset>

Une de mes fonction Javascript:

Function VerifierTypeRapport(){

if(document.form["genre"].checkbox.C1.checked == true){
chaine="categorieEmploi";

}else if(document.form["genre"].checkbox.C2.checked == true){
chaine="activite";

}else if(document.form["genre"].checkbox.C3.checked == true){
chaine="travailPourQui";

}else if(document.form["genre"].checkbox.C4.checked == true){
chaine="surtempsCadreMaitrise";

}else if(document.form["genre"].checkbox.C5.checked == true){
chaine="surtempsPersonne";

}else if(document.form["genre"].checkbox.C20.checked == true){
chaine="HeuresAccumule";

}else{
chaine="";
alert("Vous devez choisir un type de rapport");
}

return chaine;

}

Je suis malheureusement une débutante en stage qui n'arrive pas à grand chose depuis quelque temps. Mais ton aide serait grandement apprécié. (Une promesse)

Merci d'avance DaNot pour ton coup de main qui pourras éventuellement enrichir mes connaissances.

Kathou
0
DaNot Messages postés 221 Statut Membre 163
 
Bon !

Vu le code que tu as envoyé, je pense qu'il y a quelques petites corrections :
1. Mettre la balise de fermeture du FIELDSET avant la balise de fermeture du formulaire.
2. La balise ANCHOR sur le bouton SUBMIT n'est pas utile car le bouton ouvre automatiquement la page pour_qui.html : puisqu'il est de type SUBMIT dans un formulaire, l'explorateur ira directement chercher le texte qui se trouve dans la propriété ACTION du formulaire et l'interprètera.

Ensuite, tu parles d'une autre page HTML dans ton premier message. L'ajout de FILEDSET dans une page HTML ne définit pas une autre page HTML. La balise FILEDSET permet d'associer des contrôles d'un formulaire uniquement et ajouter des propriétés/évènements sur ces contrôles.

Pour finir, je pense qu'il faut que tu définisse le bouton Suivant de type BUTTON (marrant non, je t'avais l'inverse l'autre fois ...) avec comme évènement OnClick="VerifierTypeRapport();". Dans ta fonction, si tout les contrôles sont saisis correctement, tu peux alors lancer la fonction Submit du formulaire par le code :
document.form["genre"].submit();

Dis-moi si il reste des points à éclaircir ....

DaNot
0
kathou Messages postés 80 Statut Membre 24
 
effectivement DaNot il reste un petit point à éclaircir.

Si ma fonction qui verifierTypeRapport se trouve dans une autre page HTML est-ce que je peux faire ce que tu me dit.

Ma fonction se trouve dans ma page rapport.html qui permet de visualiser un rapport selon les choix de l'utilisateur. Car c'est ici que j'ai besoin de savoir quel checkbox ont été cocher dans mon formulaire.

Et serait-il plus simple de pouvoir accéder aux données du formulaire en plaçant celui-ci dans un frame plutôt que dans un fieldset.

Merci beaucoup de prendre le temps de me répondre. Très gentil, cela m'aide énormément et me permet de mieux comprendre mes erreurs.

Si tu as besoin de plus de détail fait le savoir.

Kathou
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
DaNot Messages postés 221 Statut Membre 163
 
Si je comprends bien, tu as une page (param.html, par ex.) dans laquelle l'utilisateur saisi des paramètres. Ensuite, tu ouvres la page rapport.html pour afficher le rapport en fonction des paramètres saisis. C'est cette dernière page qui contient la fonction VerifierTypeRapport.

Vu que tu as utilisé un formulaire avec la méthode POST, tu ne le vois pas mais en fait l'url http://.../rapport.html contient tous les INPUT du formulaire. Si tu utilises la méthode GET, tu auras une URL du type :
http://.../rapport.html?C2=Yes&C20=Yes
Cette URL est formée de tous les Checkbox cochés. A toi de faire une petite fonction en Javascript pour décomposer cette URL et savoir quels sont les Checkbox sélectionnés pour le rapport.

DaNot
0
kathou
 
Merci beaucoup DaNot pour toutes ces informations.

Je vais mettre en pratique tes bon conseils.
Effectivement c'est beaucoup plus clair pour moi.

Encore merci et si j'ai encore des problèmes je te ferais un appel au secours (lol)

Merci!

Kathou
0
kathou
 
Bonjour DaNot. Ben oui encore la tannante.

J'ai encore une petite question pour toi. J'ai changé la méthode Post de mon formulaire pour la méthode get. Cependant je n'arrive pas à visualiser l'URL.

Est-ce normal?

Et ci c'est normal. Je dois faire une petite fonction qui découpera l'URL dans le but de savoir exactement quel checkbox ont été cocher. Ce qui facilitera la visualisation de mon rapport.

Merci de ton aide(vraiment apprécier)

Kathou
0
DaNot Messages postés 221 Statut Membre 163
 
Bonjour kathou,

Je ne crois pas que ce soit normal que tu vois les args dans l'URL. Enfin, si dans la page rapport.html, tu affiches document.location (avec un alert, par ex), tu dois voir cela...

Sinon, je t'ai cococter un petit exemple tout simple avec deux fichiers :
INDEX.HTML
<HTML>

<BODY>

<FORM METHOD="GET" NAME="Genre" ACTION="result.html">
   <FIELDSET>
      <INPUT TYPE="Checkbox" NAME="Genre" VALUE="M">Masculin</INPUT>
      <INPUT TYPE="Checkbox" NAME="Genre2" VALUE="F">Féminin</INPUT>
      <INPUT TYPE="Checkbox" NAME="Genre3" VALUE="Y">Féminin</INPUT>
      <INPUT TYPE="Checkbox" NAME="Genre4" VALUE="X">Féminin</INPUT>
   </FIELDSET>
   <A HREF="result2.html"><INPUT TYPE="SUBMIT" VALUE="GO"></A>
</FORM>

</BODY>

</HTML>


RESULT.HTML
<HTML>

<SCRIPT Language="Javascript" SRC="mine.js"></SCRIPT>
<BODY>
<SCRIPT Language="Javascript">
var aArgs;
var aArgValues;

function getArgs( ) {

   var lArgs = document.location.search.substring (1);
   var lPos;
   var lCount;
   
   alert (lArgs);
   
   aArgs = new Array( );
   aArgValues = new Array( );
   lCount = 0;

   lPos = lArgs.indexOf ("=", 0);
   while (lPos != -1) {
      if (lPos != -1) {
         aArgs [lCount] = lArgs.substring (0, lPos);
         lArgs = lArgs.substring (lPos + 1);
      }
      
      lPos = lArgs.indexOf ("&", 0);
      if (lPos != -1) {
         aArgValues [lCount] = lArgs.substring (0, lPos);
         lArgs = lArgs.substring (lPos + 1);
      }
      else {
         aArgValues [lCount] = lArgs;
      }
      lCount += 1;
      lPos = lArgs.indexOf ("=", 0);
   }
   
   for (lCount = 0;lCount < aArgs.length; lCount ++) {
      alert (aArgs [lCount] + " : " + aArgValues [lCount]);
   }

}

getArgs( );
</SCRIPT>
</BODY>
</HTML>


La fonction getArgs découpe les arguments & les met dans deux tableaux. aArgs contient la liste des arguments & aArgValues contient la liste des valeurs associées.

Sinon, je te conseille d'aller jeter un petit coup d'oeil à :
https://www.toutjavascript.com/main/index.php3. C'est très bien fait et je m'en sers régulièrement pour rafraîchir mes connaissances.

DaNot
0
kathou
 
Merci beaucoup DaNot tu es un amour.

Je regarde ceci avec beaucoup d'intérêt.

Kathou.
0
DaNot Messages postés 221 Statut Membre 163
 
Mais c'est avec plaisir, kathou ... :-)

Dis moi exactement, tu es dans quelle partie du globe, vu les horaires des posts ???

DaNot
0
kathou
 
Je suis à Montréal et je suis en stage chez hydro-québec.
Et toi tu es de où?

Kathou
0
DaNot Messages postés 221 Statut Membre 163
 
Moi, je suis en France dans le sud : Toulouse, la ville rose ...

DaNot
0