11548 sujets

JavaScript, DOM et API Web HTML5

Après avoir eu de l'aide pour mon formulaire, je reviens avec un bug que je ne comprends pas...
J'ai 2 formulaires dans une page avec donc 2 submit. J'ai fait une fonction car les 2 actions des 2 form sont différentes :

<script language="javascript">
function valide(id) {
document.getElementById('form1').submit();
}

function valide2(id) {
document.getElementById('form2').submit();
}
</script>


Et mon form :

<form id="form1" action="form1.html">
<input type="image" src="btn_recherche1.jpg" onclick="valide();" />
</form>
<form id="form2" action="form2.html">
<input type="image" src="btn_recherche2.jpg" onclick="valide2();" />
</form>


Quand je clique sur un submit le bon id est envoyé mais dans l'url est rajouté "form1.html?x=&y="
Ma question : pourquoi il y a marqué cela dans l'url et d'ou ca vient ? je récupère juste l'id ! comment faire pour juste envoyer vers la bonne page html sans pour autant rajouter tout ce bordel derrière ? merci
Modifié par sway (03 Mar 2008 - 15:59)
Bonjour,

a écrit :
Quand je clique sur un submit le bon id est envoyé mais dans l'url est rajouté "form1.html?x=&y="


Normal, la méthode par défaut est le passage par get (donc les valeurs du formulaire restent apparentes).
Si il s'agit d'informations "sensibles", le passage par post est recommandé donc ajouter l'attribut method avec la valeur post sur la (les) balise (s) form.

Après le reste je ne comprend pas pourquoi tu codes des fonctions Javascript Smiley fache qui n'ont pas lieu d'être (dans ton contexte).
Pourquoi ne pas utiliser des input de type submit / image (sans script Javascript) Smiley decu ... Tellement mieux (et tout ce qui s'en suit Smiley cligne ).

Bonne continuation.
Romain

PS : je ne connais pas spécialement ton niveau mais à ce que je perçois il semble que tu aies quelques lacunes. N'hésite donc pas à lire les différents tutos pour bien appréhender tout ça Smiley smile .
Modifié par yodaswii (03 Mar 2008 - 16:14)
bonjour,

Pour enlever tout ce bordel il suffit de réfléchir un peu pour voir que comme tu peux le voir il s'agit des coordonnées de ta souris qui sont sans doute du à l'évènement onclick.

Pour les enlever il suffit de définir la method post pour ton formulaire au lieu de la laisser a vide. Et donc il doit prendre par défaut la methode get lui.

edit : trop lent :'(
Modifié par Halindel (03 Mar 2008 - 16:12)
Il s'agit en effet des coordonnées de la souris sur l'image du input.

Personnellement, voici comment je ferais ton formulaire :

<form action="form1.html" method="post">
	<input type="image" src="btn_recherche1.jpg" value=" Rechercher " />
</form>
<form action="form2.html" method="post">
	<input type="image" src="btn_recherche2.jpg" value=" Rechercher " />
</form>


J'aimerais savoir comment tu récupères tes variables après avoir soumis ton formulaire ?

Remarque concernant tes fonctions javascript, tu crées une fonction qui reçoit comme argument "id" mais dans l'appel de ta fonction, tu ne fais passer aucun paramètre ! De plus, dans ta fonction, tu n'utilises même pas l'argument qu'elle reçoit donc pas besoin d'en mettre un !

Comme dit yodaswii, tu possèdes d'ENORMES lacunes en html !!! Quelques tutoriaux en te feront pas de mal !
Un élément input type="image" génère automatiquement les paramètres x et y avec les coordonnées de ton clic. De même un input type="submit" créera tout seul un paramètre nom de l'élément avec comme valeur sa value. Un petit exemple vaut mieux que des grands mots, regardez votre barre d'adresse à l'exécution de ce bout de code :
<form>
<input type=image>
<input type=submit name=monnom value=mavaleur>
</form>
yodaswii a écrit :
Bonjour,


Pourquoi ne pas utiliser des input de type submit / image (sans script Javascript) Smiley decu ... Tellement mieux (et tout ce qui s'en suit Smiley cligne ).

PS : je ne connais pas spécialement ton niveau mais à ce que je perçois il semble que tu aies quelques lacunes. N'hésite donc pas à lire les différents tutos pour bien appréhender tout ça Smiley smile .


Et pourquoi pas des frames ?
Et non la méthode que j'emploie n'est pas la Get mais bien la post. J'ai du oublié de dire que je développe des templates phplib (ce qui avec D'ENORMES LACUNES EN HTML serait impossible) et que dans le template je ne peux utiliser que cette méthode, car les pages html ne sont créées qu'une fois que l'utilisateur a cliqué sur le bon lien. Je ne donne pas dans le site statique et merdique, désolé.
Alors voilà,j'ai posé une question bête et on me chie dessus ! Alphonse, je ne pense pas du tout avoir d'ENORMES LACUNES EN EN HTML, au contraire je peux même te donner des cours si tu veux... encore merci pour ceux qui m'ont vraiment aidé !
Et pourquoi pas des frames ?
Et non la méthode que j'emploie n'est pas la Get mais bien la post. J'ai du oublié de dire que je développe des templates phplib (ce qui avec D'ENORMES LACUNES EN HTML serait impossible) et que dans le template je ne peux utiliser que cette méthode, car les pages html ne sont créées qu'une fois que l'utilisateur a cliqué sur le bon lien. Je ne donne pas dans le site statique et merdique, désolé.
Alors voilà,j'ai posé une question bête et on me chie dessus ! Alphonse, je ne pense pas du tout avoir d'ENORMES LACUNES EN EN HTML, au contraire je peux même te donner des cours si tu veux... encore merci pour ceux qui m'ont vraiment aidé !
Smiley eek Smiley eek Smiley eek

Ta réaction me laisse somme toute assez perplexe. Soit tu as un complexe d'infériorité soit tu ne cernes pas que l'absence de savoir n'est pas une tare (tout s'apprend).

a écrit :
Et pourquoi pas des frames ?


Probablement car aucun rapport dans le contexte ...

a écrit :
Et non la méthode que j'emploie n'est pas la Get mais bien la post.


La preuve tu indiques bien la "method" de passage sur ton "form" (l'url le confirme aussi Smiley cligne ).

a écrit :
J'ai du oublié de dire que je développe des templates phplib ... Je ne donne pas dans le site statique et merdique, désolé.


Quelle référence ! Sache que, pour ta gouverne, la création d'un site statique n'est pas moins difficile qu'un site dynamique et qu'un site statique n'est pas forcément merdique ... (développeur ne rime pas toujours avec développeur web).

a écrit :
Alors voilà, j'ai posé une question bête et on me chie dessus !


Personne ne la fait ... Après si les réponses ne te plaisent, il ne faut pas poser de question.
Il faut savoir un peu se remettre en question.

a écrit :
Au contraire, je peux même te donner des cours si tu veux ...


On va peut être éviter ... pour le moment en tout cas ...

Enfin bref, on t'a dit ce qu'il en était après si tu as envie de rester dans une "certaine ignorance" libre à toi ...
Modifié par yodaswii (04 Mar 2008 - 20:32)