Changer l'action (ainsi que l'image) d'un formulaire au clic d'un bouton radio (

cs_JABE Messages postés 13 Date d'inscription dimanche 28 septembre 2003 Statut Membre Dernière intervention 9 juillet 2009 - 21 févr. 2009 à 23:58
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 - 23 févr. 2009 à 10:39
Bonjour,

Je tente de créer une page réunissant plusieurs moteurs de recherche (voir http://www.jabe.fr/r ) et j'ai quelques soucis.

En fait je souhaiterais que le moteur de recherche utilisé change selon le bouton radio coché.

J'ai réussi à créer un script pour ça:

function changeAction(page) {
  document.forms.recherche.action = page;
}

Seulement ça ne fonctionne que pour le premier moteur utilisant ce script (Wikipédia) et pas pour le suivant.

Je pense que ça vient du fait que j'utilise <form id="recherche" au lieu de <form class ="recherche" mais quand j'utilise <form class= "recherche" mon script ne fonctionne plus, je ne sais pas l'adapter, je crois qu'il faut rajouter .className mais où ?

De plus, je souhaiterais que les icônes des moteurs changent en même temps que l'action, ainsi que le texte prérempli (la class =hint dans mon code) .

J'ai fait un schéma explicatif ici:

J'ai réuni ma page web, le fichier css, les images, et les scripts dans une archive zip ici => http://www.jabe.fr/r.zip

Je pense pas que ça soit bien compliqué quand on s'y connaît mais là malgré mes recherches j'ai vraiment du mal.

Merci d'avance pour votre aide.

13 réponses

Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
22 févr. 2009 à 12:40
bonjour,

>><form id="recherche" au lieu de <form class="recherche"

oulah...

tu confonds surtout 2 choses qui n'ont aucun rapport
pour faire simple
class, c'est lier la balise à du css pour la présentation
id, c'est donner un nom à cette balise pour pouvoir l'utiliser
quand à ton souci pour appeler le bon moteur,
"il suffit" de mettre la bonne url ( avec les paramètres qui conviennent !!! )
http://www.google.fr.... ou http://www.fr.altavista.com ... ou autres

Cordialement

[mon Site][M'écrire]Bul
0
cs_JABE Messages postés 13 Date d'inscription dimanche 28 septembre 2003 Statut Membre Dernière intervention 9 juillet 2009
22 févr. 2009 à 13:13
J'essayais d'utiliser class car contrairement à id on peut l'utiliser plusieurs fois, tandis qu'un id est unique. Maintenant c'est vrai que je connais plus le CSS que le Javascript d'où mon erreur.

En fait je cherche un moyen de réutiliser le même script sans le réécrire à chaque fois dans la page.

Par rapport à l'url j'ai réussi à la mettre sous la forme:

 Youtube

et

      Dailymotion

Et cela fonctionne, mais une seule fois dans la page et c'est là que je bloque.

Ça ne change pas non plus l'image ni le title dont le nom d'input est search mais ça c'est parce que je n'ai pas encore réussi à créer le script pour.

Aurais-tu un exemple de code ?
0
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
22 févr. 2009 à 13:49
des radio ? quelle idée ?!?!!??
j'aurais opté pour tout, mais pas pour de radios !
mais bon... chacun ses goûts au fond

>>Et cela fonctionne, mais une seule fois dans la page
ah ?? et pourquoi donc ? pas de raisons.....
si la function changeAction fait correctement son boulot

>>Ça ne change pas non plus l'image ni le title
parce que tu ne le fais pas, je suppute ( mais sans l'être )
0
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
22 févr. 2009 à 13:54
>>J'essayais d'utiliser class car contrairement à id on peut l'utiliser plusieurs fois,
>>tandis qu'un id est unique
certes...
mais comme l'utilisation de class et de id n'a rien
à voir l'un avec l'autre.... ???
tu peux mettre le class que tu veux sur n'importe quelle balise,
ça ne te permettra pas d'y accéder en javascript par exemple
0

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

Posez votre question
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
22 févr. 2009 à 13:57
>>>des radio ? quelle idée ?!?!!??
>>>j'aurais opté pour tout, mais pas pour de radios
quand je dis cela, c'est compte tenu de la manière
dont tu sembles utiliser....
pour le choix du moteur de recherche, pourquoi pas
c'est même probablement "le plus simple" à utiliser
0
cs_JABE Messages postés 13 Date d'inscription dimanche 28 septembre 2003 Statut Membre Dernière intervention 9 juillet 2009
22 févr. 2009 à 14:58
>>pas de raisons.....
si la function changeAction fait correctement son boulot

Comment faire en sorte que changeAction fasse correctement le boulot ?

J'ai bien compris que j'y prenais mal mais que dois-je faire pour bien faire justement ?

Donne moi des pistes s'il te plaît.
0
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
22 févr. 2009 à 15:51
la question c'est plutôt : comment fais-tu ?
parce que comment faire, on peut répondre d'une foultitude
de manières ( j'aurais bien dit de 256894 manières,
mais PetoleTeam est capable de les demander toutes ;o)
0
cs_JABE Messages postés 13 Date d'inscription dimanche 28 septembre 2003 Statut Membre Dernière intervention 9 juillet 2009
22 févr. 2009 à 16:11
>>Comment faire, on peut répondre d'une foultitude
de manières

Une seule manière me suffirait.

>>comment fais-tu ?

Je l'ai déjà expliqué, mon script est le suivant:

function changeAction(page) {
  document.forms.recherche.action = page;
}

Mon html (extrait):

<form class="recherche" method="get" action="http://fr.wikipedia.org/wiki/Special:Search?search=">

     
   
   

 

     
      Fran&ccedil;ais
      Anglais
            Allemand
     Espagnol
   

    </form>

Mais si j'utilise onclick="changeAction dans un autre form de ma page, ça ne fonctionne pas, ça fonctionne que pour le 1er form.

Donc je répète ma question comment faire pour que cela fonctionne plusieurs fois (sans avoir une page trop lourde) ?
0
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
22 févr. 2009 à 16:36
>>Je l'ai déjà expliqué,
c'était loin d'être aussi clair que tu ne le penses  !
dans la fonction changeaction tu modifies l'action du formulaire, certes,
mais les paramètres, pour les différents moteurs de recherches,
ne sont probablement les mêmes
 là d'ailleurs, tu met toujours la même chose ?
  tu ne te sers que de wikipedia ?
  je croyais avoir compris qu'il fallait plusieurs moteurs ?
pour google par exemple :  http://www.google.fr/search?q=texte à rechercher....
tu dois donc adapter pour chaque cas

>>Donc je répète ma question comment faire pour que cela fonctionne
>>plusieurs fois (sans avoir une page trop lourde)
là tel que tu fais met target="résultat" dans le form
 ce formulaire n'est d'ailleurs pas soumis ? si ? j'ai mal vu ?
on n'a toujours pas tout le nécessaire me semble-t-il....
tu rechignes à fournir toutes les infos ?
0
cs_JABE Messages postés 13 Date d'inscription dimanche 28 septembre 2003 Statut Membre Dernière intervention 9 juillet 2009
22 févr. 2009 à 17:22
Finalement j'ai avancé tout seul comme un grand.
Mon script est:

function changeAction(id_du_form, action_a_effectuer){
   document.getElementById(id_du_form).action = action_a_effectuer;
}

Et mon  html:

<form id="wikipedia" method ="get" action="http://fr.wikipedia.org/wiki/Special:Search?search=">

     
   
   

 

     
      Fran&ccedil;ais
     
      Anglais
           
      Allemand
     Espagnol
   

    </form>

Ça marche à merveille voir http://www.jabe.fr/r .

Il y a juste youtube et googlevideo qui fonctionnent mal mais je crois que ça vient de l'action qui n'est pas bonne il faut juste que je retrouve le bon lien.
À moins que ça soit comme tu le soulignes un problème de paramètre de moteur de recherche, il faut que je me penche là-dessus.

Malgré tout les formulaires sont bel et bien soumis, dis moi si ça marche aussi chez toi.

J'ai trouvé comment changer les images aussi, je posterais ça plus tard.
0
cs_JABE Messages postés 13 Date d'inscription dimanche 28 septembre 2003 Statut Membre Dernière intervention 9 juillet 2009
22 févr. 2009 à 21:24
J'ai mis à jour avec le changement d'images, par contre le changement de texte prérempli ne fonctionne pas.

En fait j'arrive à changer la valeur value= " (voir mon test en bas de page) mais ce qu'il faudrait que je change c'est title= et là ça ne passe pas.

J'ai aussi un problème avec les moteurs de recherche j'ai &bouton.x =0&bouton.y=0&radio=on qui se rajoute après ma recherche et je ne sais pas pourquoi
0
cs_JABE Messages postés 13 Date d'inscription dimanche 28 septembre 2003 Statut Membre Dernière intervention 9 juillet 2009
22 févr. 2009 à 23:01
En fait j'ai trouvé pourquoi &bouton.x=0&bouton.y=0  se rajoutait, ça venait de mon bouton submit et d'une erreur d'étourderie, je l'ai corrigé.

Par contre le &radio=on qui vient du fait que mes boutons radio sont cochés je n'arrive pas à l'enlever, il doit falloir que j'utilise autre chose que des boutons radios pour le choix, comme des images, mais ce serait dommage.

Alors comment faire en sorte que le fait que le bouton radio soit coché ne soit pas envoyé dans ma requête au moteur de recherche ?
0
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
23 févr. 2009 à 10:39
comme tu ne daignes ni répondre à mes questions,
ni tenir le moindre compte de mes messages,
moi je ne tentais que de t'aider, tu ne sembles
pas y tenir, je te laisse donc te débrouiller
comme un grand.
0
Rejoignez-nous