[javascrip] Changer l'action d'un formulaire[ résolu]

Changer l'action d'un formulaire[ résolu] [javascrip] - HTML/CSS - Programmation

Marsh Posté le 29-12-2006 à 22:07:09    

Bonjours, je code un site en php/html, et j'ai besoins de changer la partie action d'un formulaire.
Le truc c'est que j'ai une partie select dans le formulaire, et quand l'utilisateur clique sur un choix, la partie action du formulaire change et le formulaire est envoyé.
 
J'ai vite compris qu'il me faudrait du javascript pour faire cela, mais je n'y connais rien en javascript et j'ai donc du mal.
Voici mon code :
 
La fonction :

Citation :

<script language="javascript">
function loadtype(){
document.forms['typechoice'].action = 'index.php?contenu=blog&amp;style=' + this.form.elements['style'].options[this.form.elements['type'].selectedIndex].value;
document.typechoice.submit();
}
</script>


Puis dans le formulaire y a : onchange="loadtype()"
Et entre les balise head : <SCRIPT LANGUAGE="JavaScript" SRC="div/loadtype.js"></SCRIPT>
 
Avec ce code la rien ne se passe, si à la place de loadtype() je mets directement document.typechoice.submit();, alors le formulaire est bien chargé (mais sans la modification de action).
 
Quelqu'un pourrait-il me dire mon erreur ?
Merci d'avance.
Siron


Message édité par Siron le 30-12-2006 à 10:28:16
Reply

Marsh Posté le 29-12-2006 à 22:07:09   

Reply

Marsh Posté le 30-12-2006 à 10:27:50    

C'est bon j'ai trouvé, je me suis souvenu que sur matbe.com ils avaient ce genre de menu et j'ai été pomper la ligne de code :

Citation :

onchange="window.location.href='index.php?contenu=blog&amp;type='+this.value"


C'est vachement plus simple que mon système, j'y avait pas pensé.


Message édité par Siron le 30-12-2006 à 10:43:00
Reply

Marsh Posté le 30-12-2006 à 13:07:22    

Je pige vraiment, mais alors vraiment pas là [:johneh] C'est quand-même fait d'origine par le navigateur, suffit de bien faire le form :

Code :
  1. <form action="index.php" method="get">
  2.   <div>
  3.     <input type="hidden" name="contenu" value="blog" />
  4.     <label for="zeType">Type</label>
  5.     <select name="type" id="zeType">
  6.       <option value="pouet">Pouet</option>
  7.       <option value="tagada">Tagada</option>
  8.     </select>
  9.     <input type="submit" name="Ok" />
  10.   </div>
  11. </form>


Faut surtout pas utiliser du JS pour un truc important comme ça, pour des raisons d'accessiblités. On peut parfaitement le faire de manière standard :)

Reply

Marsh Posté le 30-12-2006 à 13:07:42    

Y'a juste le coup du input hidden en fait qu'il faut savoir, pour mettre le paramètres dans l'url (sinon c'est enlevé)

Reply

Marsh Posté le 30-12-2006 à 14:24:48    

Donc si je comprends bien ton truc, si j'utilise ton code :
 
Quand je sélectionne une option dans la liste déroulante :
- Ca change en fonction de l'option choisie la partie action du form.
- Ca envoit directement le formulaire.
 
C'est ça ?
 
Parceque j'ai pas l'impression que ça fasse cela (à moins que le label que je ne connais pas fasse que ...)

Reply

Marsh Posté le 31-12-2006 à 13:43:00    

Si ça fait ça, c'est quelque chose de standards, je pige pas trop ton problème [:johneh] Avec la méthode GET, les paramètres sont ajoutés à l'url spécifiée dans l'action, donc ce que tu veux faire
 
Pour le label, c'est pour associer un intitulé avec son champ

Reply

Marsh Posté le 31-12-2006 à 14:45:45    

:pt1cable:  just !!!
J'ai toujours utilisé la méthode post et petit à petit la méthode get m'était sortie de la tête.
Par contre si je veux me passer du bouton input me faut le script ?

Reply

Marsh Posté le 31-12-2006 à 15:59:29    

Oui si tu veux te passer du bouton d'envois du formulaire il te faut utiliser du js pour l'envois du formulaire. Idéalement le bouton devrait être présent au départ et masqué à coup de js.


Message édité par dwogsi le 31-12-2006 à 15:59:49
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed