Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 13/11/2011, 10h52   #1
Candidat au titre de Membre du Club
 
Inscription : août 2006
Messages : 38
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 38
Points : 10
Points : 10
Par défaut Recherche Multi moteur

Bonjour,

Je souhaiterais faire un petit formulaire de recherche avec option ( Google / Yahoo / Bing ).

Ce code est idéal, mais il manque des éléments pour qu'il fonctionne.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
 
<script type="text/javascript">
<!--
function goSearch(){
//search according to checked radio button
}
			tab = new Array(  ) ;
			tab[0] = new Array( 'google','http://www.google.com/search','get','q' ) ;
			tab[1] = new Array( 'yahoo','http://fr.search.yahoo.com/search','get','p' ) ;
			tab[2] = new Array( 'bing','http://www.bing.com/search','get','p' ) ;
-->
</script>
 
 
<h1>Recherche Internet</h1><br />
 
 
<form method="get" action="goSearch()">
 
<input type="text" name="q" size="25" maxlength="255" value="" />
 
<br /><br />
 
<input type="radio" name="search" id="google"/>GOOGLE
<input type="radio" name="search" id="yahoo"/>YAHOO
<input type="radio" name="search" id="bing" />BING
 
<br /><br />
 
<input type="submit" value="RECHERCHE" />
 
</form>
Il s'agit seulement de se retrouver sur l'un des trois moteurs de recherche choisi par une option (radio), avec le mot clé inséré.

Je vous remercie par avance de votre précieuse aide.

Cordialement.
hoodvy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/11/2011, 15h26   #2
Expert Confirmé
 
Avatar de javatwister
 
Homme
danseur
Inscription : août 2003
Messages : 2 667
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Calvados (Basse Normandie)

Informations professionnelles :
Activité : danseur

Informations forums :
Inscription : août 2003
Messages : 2 667
Points : 3 035
Points : 3 035
Citation:
Ce code est idéal, mais il manque des éléments pour qu'il fonctionne.
Je vois que tu as le goût du paradoxe, ça tombe bien


par contre, que manque-t-il dans ton code pour que l'utilisateur arrive sur google ou compagnie?
javatwister est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/11/2011, 15h59   #3
Candidat au titre de Membre du Club
 
Inscription : août 2006
Messages : 38
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 38
Points : 10
Points : 10
Citation:
Je vois que tu as le goût du paradoxe, ça tombe bien
J’essaie

Et bien, ce qu'il me manque, c'est toute mon interrogation

Voici un site qui propose un peu la même idée (sans vouloir copier évidemment), voici ce site : http://www.startissimo.com/

Ce site utilise ce script

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
 
<script language="javascript" type="text/javascript" charset="utf-8">
<!--
function addFav()
{
if (document.all)
{
window.external.AddFavorite(location.href, document.title);
}
else
{
alert('Vous pouvez faire CTRL + D pour ajouter cette page dans vos signets, ou favoris.')
}
}
 
var urlList = [];
 
function Url(url, formValue, target, useUtf8) {
    this.url = url;
    this.target = target;
    this.formValue = formValue;
    this.useUtf8 = useUtf8;
}
 
function addUrl(url, formValue, target, useUtf8) {
    urlList[urlList.length] = new Url(url, formValue, target, useUtf8);
}
 
<!-- inserer les adresses ici -->
addUrl("http://www.google.fr/#q=", "google", "_blank", true);
addUrl("http://search.yahoo.com/search;_ylt=A0oGdSYqoghNankB1YSl87UF;_ylc=X1MDMjE0MjQ3ODk0OARfcgMyBGZyA3NmcARuX2dwcwMwBG9yaWdpbgNzeWMEcXVlcnkDYWlt6QRzYW8DMA--?fr=sfp&fr2=sfp&iscqry=&p=", "yahoo", "_blank", true);
addUrl("http://www.bing.fr/search?q=", "bing", "_blank", true);
addUrl("http://www.youtube.com/results?search_query=", "youtube", "_blank", true);
addUrl("http://www.dailymotion.com/relevance/search/", "dailymotion", "_blank", true);
addUrl("http://www.pixfinder.net/en/?q=", "pixfinder", "_blank", true);
addUrl("http://www.les-verbes.com/conjuguer.php?verbe=", "conjugaison", "_blank", true);
addUrl("http://www.le-dictionnaire.com/definition.php?mot=", "le-dictionnaire", "_blank", false);
addUrl("http://www.synonymes.com/synonyme.php?mot=", "synonymes", "_blank", false);
addUrl("http://fr.wikipedia.org/wiki/", "wikipedia", "_blank", true);
addUrl("http://maps.google.com/?q=", "google-maps", "_blank", true);
addUrl("http://recherche.lefigaro.fr/recherche/recherche.php?ecrivez=", "le-monde", "_blank", true);
 
 
function validatePost(form) {
    if (form.query.value == "") {
        return false;
    }
 
    var radioValue = $('input:radio[name=radio]:checked').val();
 
    for (var i=0; i<urlList.length; i++) {
        var item = urlList[i];
        if (radioValue == item.formValue) {
            var thisUrl = form.query.value;
            if (item.useUtf8) {
                thisUrl = unescape(encodeURIComponent(form.query.value));
            }
            thisUrl = escape(thisUrl);
            window.open(item.url + thisUrl, item.target);
            return false;
        }
    }
    return false;
}
 
//-->
</script>
Avec pour exécution ce script :

Code :
1
2
 
<form onSubmit="return validatePost(this);" style="display: inline;" method="GET" action="" accept-charset="utf-8">
Peut être que les éléments suivants vous donnera plus indications, du moins je l'espère
hoodvy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/11/2011, 19h44   #4
Candidat au titre de Membre du Club
 
Inscription : août 2006
Messages : 38
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 38
Points : 10
Points : 10
Par défaut J'ai avancé sur mon script, mais j'ai besoin d'aide pour les finissions

RE :

J'ai pas mal avancé sur ma recherche, voici mon script actuellement :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
<html>
 
<head>
 
<script language="javascript">
<!--
function $(o){
 var o=document.getElementById(o)?document.getElementById(o):o;
 return o;
}
 
function gt(f){
 var t;
 var u;
 if(f.a0 != undefined){
  u = 'Y:';
  t = f.q.value;
  if(f.a0.checked==true){u+='0;';}
  if(f.a1.checked==true){u+='1;';}
  if(f.a2.checked==true){u+='2;';}
  if(f.a3.checked==true){u+='3;';}
  if(f.a4.checked==true){u+='4;';}
  if(f.a5.checked==true){u+='5;';}
 
 }
 else{
  t = f.Ka.value;
  u = 'G';
 }
 try{
 
 }catch(ex){}
 if($("Ka").value == ""){
  $("ch").value = "noprefill";
 } else {
  $("ch").value = "prefill";
 }
}
 
function s4(){
 var v=$("Kaa").value
 if($("a0").checked){
 $("SoAll").action='http://fr.search.yahoo.com/search','0';
 $("gForm").innerHTML="<input type='hidden' name='client' value='aff-avalanche' /><input type='hidden' name='forid' value='1' /><input type='hidden' name='channel' value='prefill' id='ch' /><input type='hidden' name='ie' value='gb' /><input type='hidden' name='oe' value='UTF-8' /><input type='hidden' name='hl' value='fr' />";
 $("SoAll").submit();
 }
 if($("a1").checked)
 window.open("http://www.alltheweb.com/search?cat=vid&cs=utf8&q="+v+"&rys=0&itag=crv","1");
 if($("a2").checked)
 window.open("http://images.google.fr/images?q="+v,"2");
 if($("a3").checked)
 window.open("http://www.excite.fr/search/mp3/results?offset=0&q="+v,"4");
 if($("a4").checked)
 window.open("http://search.ebay.fr/search/search.dll?cgiurl=http%3A%2F%2Fcgi.ebay.fr%2Fws%2F&fkr=1&from=R8&satitle="+v,"4");
 if($("a5").checked)
 window.open("http://www.01net.com/recherche/index.php?searchstring="+v+"&type=01net&system=windows","5");
 
 return false;
}
 
</script>
 
</head>
 
<body>
 
<FORM id="SoAll" onSubmit="gt(this);return s4()" action="" method=get>
 
<input id="Kaa" name="q" class="Input" type="text"><br><br>
 
 
<input type="radio" id="a0" class="Radio"/>Yahoo<br>
 
<input type="radio" id="a1" class="Radio"/>AlltheWeb<br>
 
<input type="radio" name="search" id="a2" class="Radio"/>Google image<br>
 
<input type="radio" name="search" id="a3" class="Radio"/>Excite<br>
 
<input type="radio" name="search" id="a4" class="Radio"/>Ebay<br>
 
<input type="radio" name="search" id="a5" class="Radio"/>01net<br><br>
 
 
<INPUT class="Submit" type="submit" value="Recherche">
 
</form>
 
 
</body>
</html>
Les recherches fonctionnent, par-contre il y a un dysfonctionnement concernant les cases a cocher, à savoir qu'il ne se décoche pas toute lorsque l'on sélectionne un autre moteur de recherche, vous allez comprendre de suite lors de la consultation de ce script

Un petit détail que j'aimerais apporter a ce script, j'aimerais que toutes les recherches s'ouvre dans la même page et non dans une autre fenêtre comme c'est le cas actuellement.

UN TRÈS GRAND MERCI POUR VOTRE AIDE
hoodvy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/11/2011, 20h16   #5
Modérateur
 
Avatar de NoSmoking
 
Homme
Inscription : janvier 2011
Messages : 2 944
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : janvier 2011
Messages : 2 944
Points : 4 776
Points : 4 776
Bonsoir,
Citation:
...par-contre il y a un dysfonctionnement concernant les cases a cocher, à savoir qu'il ne se décoche pas toute lorsque l'on sélectionne un autre moteur de recherche,...
il manque un name à tes 2 premiers RADIO pour qu'ils soient gérés avec les autres.

Citation:
Un petit détail que j'aimerais apporter a ce script, j'aimerais que toutes les recherches s'ouvre dans la même page et non dans une autre fenêtre comme c'est le cas actuellement.
cela risque d'être touffu, mais avec une gestion par IFRAME c'est sûrement jouable
NoSmoking est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/11/2011, 20h40   #6
Candidat au titre de Membre du Club
 
Inscription : août 2006
Messages : 38
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 38
Points : 10
Points : 10
Merci beaucoup NoSmoking

Pour les 2 premiers RADIO, c'est PARFAIT... C'était en effet ça, une belle erreur d’inattention de ma part

Par-contre, pour arrêté l'ouverture dans une autre fenêtre, j'ai pas encore réussi... Je sais pas si tu as vu, mais le premier choix "Yahoo" s'ouvre dans la même fenêtre, contrairement aux autres, fonction "window.open".

hoodvy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/11/2011, 22h05   #7
Modérateur
 
Avatar de NoSmoking
 
Homme
Inscription : janvier 2011
Messages : 2 944
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : janvier 2011
Messages : 2 944
Points : 4 776
Points : 4 776
Citation:
Code :
1
2
<script language="javascript">
<!--
on commence par remplacer cela par
Code :
<script type="text/javascript">
et on supprime le commentaire de début utilisait pour les navigateurs de jadis.

pour la suite si on isole
Code :
1
2
3
4
5
 if($("a0").checked){
  $("SoAll").action='http://fr.search.yahoo.com/search','0';
  $("gForm").innerHTML="<input type='hidden' name='client' value='aff-avalanche' /><input type='hidden' name='forid' value='1' /><input type='hidden' name='channel' value='prefill' id='ch' /><input type='hidden' name='ie' value='gb' /><input type='hidden' name='oe' value='UTF-8' /><input type='hidden' name='hl' value='fr' />";
  $("SoAll").submit();
 }
cela signifie que
SI le 1st radio est coché ALORS
on soumet le formulaire avec comme action la recherche search.ya...etc..., ce qui fait que la page est rechargée avec le résultat de l'action.
NoSmoking est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/11/2011, 22h22   #8
Candidat au titre de Membre du Club
 
Inscription : août 2006
Messages : 38
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 38
Points : 10
Points : 10
Merci pour cette explication, je comprend le principe grâce a toi maintenant. Par-contre je n'ai pas réussi a le mettre en place...

Es-ce qu'il est possible que tu me mette le code dans son intégralité ?

Merci vraiment pour ton aide et de prendre le temps pour m'aider
hoodvy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/11/2011, 07h43   #9
Modérateur
 
Avatar de NoSmoking
 
Homme
Inscription : janvier 2011
Messages : 2 944
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : janvier 2011
Messages : 2 944
Points : 4 776
Points : 4 776
pour le $("a0"), tu fais la même chose que pour les autres, après il te resteras certainement à optimiser tout cela
NoSmoking est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/11/2011, 13h35   #10
Candidat au titre de Membre du Club
 
Inscription : août 2006
Messages : 38
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 38
Points : 10
Points : 10
C'est bon, j'ai réussi, UN TRÈS TRÈS GRAND MERCI A TOI

voici mon code final :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
<script language="javascript">
<!--
function $(o){
 var o=document.getElementById(o)?document.getElementById(o):o;
 return o;
}
 
function gt(f){
 var t;
 var u;
 if(f.a0 != undefined){
  u = 'Y:';
  t = f.q.value;
  if(f.a0.checked==true){u+='0;';}
  if(f.a1.checked==true){u+='1;';}
  if(f.a2.checked==true){u+='2;';}
  if(f.a3.checked==true){u+='3;';}
  if(f.a4.checked==true){u+='4;';}
  if(f.a5.checked==true){u+='5;';}
 
 }
 else{
  t = f.Ka.value;
  u = 'G';
 }
 try{
 
 }catch(ex){}
 if($("Ka").value == ""){
  $("ch").value = "noprefill";
 } else {
  $("ch").value = "prefill";
 }
}
 
function s4(){
 var v=$("Kaa").value
 if($("a0").checked){
 $("SoAll").action='http://fr.search.yahoo.com/search','0';
 $("gForm").innerHTML="<input type='hidden' name='client' value='aff-avalanche' /><input type='hidden' name='forid' value='1' /><input type='hidden' name='channel' value='prefill' id='ch' /><input type='hidden' name='ie' value='gb' /><input type='hidden' name='oe' value='UTF-8' /><input type='hidden' name='hl' value='fr' />";
 $("SoAll").submit();
 }
 if($("a1").checked)
 window.open("http://images.google.fr/images?q="+v,"_self");
 if($("a2").checked)
 window.open("http://www.youtube.com/results?search_query="+v,"_self");
 if($("a3").checked)
 window.open("http://fr.wikipedia.org/wiki/"+v,"_self");
 if($("a4").checked)
 window.open("http://www.lemonde.fr/recherche/resultats.html?token=&keywords="+v+"&x=0&y=0","_self");
 if($("a5").checked)
 window.open("http://www.allocine.fr/recherche/?q="+v,"_self");
 
 return false;
}
 
</script>
Encore une fois, ton aide m'a été précieuse, merci
hoodvy est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h02.


 
 
 
 
Partenaires

Hébergement Web