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

Signaler
Messages postés
13
Date d'inscription
dimanche 28 septembre 2003
Statut
Membre
Dernière intervention
9 juillet 2009
-
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
-
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

Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
11
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
Messages postés
13
Date d'inscription
dimanche 28 septembre 2003
Statut
Membre
Dernière intervention
9 juillet 2009

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 ?
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
11
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 )
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
11
>>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
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
11
>>>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
Messages postés
13
Date d'inscription
dimanche 28 septembre 2003
Statut
Membre
Dernière intervention
9 juillet 2009

>>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.
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
11
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)
Messages postés
13
Date d'inscription
dimanche 28 septembre 2003
Statut
Membre
Dernière intervention
9 juillet 2009

>>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) ?
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
11
>>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 ?
Messages postés
13
Date d'inscription
dimanche 28 septembre 2003
Statut
Membre
Dernière intervention
9 juillet 2009

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.
Messages postés
13
Date d'inscription
dimanche 28 septembre 2003
Statut
Membre
Dernière intervention
9 juillet 2009

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
Messages postés
13
Date d'inscription
dimanche 28 septembre 2003
Statut
Membre
Dernière intervention
9 juillet 2009

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 ?
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
11
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.