Votre question

[PHP!?!?] Recherche Multisites avec Listbox

Tags :
  • Moteur de recherche
  • Programmation
Dernière réponse : dans Programmation
26 Juin 2007 06:43:37

Bonjour à tous,

J'ai décidé de me faire un page d'accueil avec mon interface vraiment personnalisée (donc pas de services en ligne déjà faits).

Mon problème vient du fait qu'au nombre de moteurs de recherche que je veux y mettre, je ne peux pas mettre ces 14 champs de recherche différents...

Je souhaitais donc pouvoir sélectionner le moteur de recherche avec une listbox, tout simplement. Ex:

[Cliquez sur l'image]

Voici le code de cette section, juqu'à maintenant:
Citation :
<div id="search" align="center">
<form id="form1" name="form1" method="post" action="">
<span id="sprytextfield1">
<input name="search_zone" type="text" class="login-username" id="search_zone" size="60" />
<span class="textfieldRequiredMsg">Veuillez entrer votre recherche</span></span><span id="spryselect1">
<label>
<select name="search_select" class="searchselect" id="search_select">
<option value="google-ca" >Google Canada</option>
<option value="google-ca-fr" >Google Canada:Fr</option>
<option value="google-world" >Google World</option>
<option value="google-images" >Google Images</option>
<option value="wikipedia" >Wikipedia (Fr)</option>
<option value="youtube" >YouTube</option>
<option value="urbanfonts" >UrbanFonts</option>
<option value="dafont" >DaFont</option>
<option value="wikicommons" >Wikimedia Commons</option>
<option value="morguefile" >MorgueFile</option>
<option value="stockexchange" >Stock Exchange</option>
<option value="flickrgpl" >Flikr (GPL)</option>
<option value="stockvault" >StockVault</option>
</select>
</label>
<span class="selectRequiredMsg">Sélectionnez votre moteur de recherche.</span></span>
<input name="startsearch" type="submit" class="submit" id="startsearch" value="Chercher!" />
</form>

</div>


Et voici, pour compléter l'exemple, les données nécessaires à mettre avant/après le mot/phrase recherché(e)(s).




Où "sSearchText" est le texte recherché.
Quelqu'un pourrai m'orienter? Un exemple serait fort apprécié... (moi qui ai pris 15 minutes de ma vie à colorier ce code :lol:  ).

Merci beaucoup et bonne journée,
FoxLeader

Autres pages sur : php recherche multisites listbox

26 Juin 2007 12:05:48

Bonjour,
Citation :
moi qui ai pris 15 minutes de ma vie à colorier ce code :lol: 


Essaye la balise [ code]:
[code2=html]
  1. ton code
[/code2]

(ca colore tout seul;) ).

Sinon, pour ton probleme, ce n'est pas trop compliqué en php.
Ca donne quelque chose comme ca (pour la page de traitement du formulaire):
  1. if (isset($_POST['search_select'])&&isset($_POST['search_zone']))
  2. {
  3. switch($_POST['search_select'])
  4. {
  5. case 'google-ca':
  6. $strRecherche='http://www.google.ca/search?q='.$_POST['search_zone'];
  7. break;
  8.  
  9. case 'google-ca-fr':
  10. [...]
  11.  
  12. default:
  13. //mettre le moteur par défaut
  14. }
  15. header("Location: ".$strRecherche);
  16. }
  17. else
  18. {
  19. //par exemple, une redirection vers ta page de recherche
  20. header("Location: http://www.tonsite.com");
  21. }


Tu dois pouvoir faire quelque chose d'équivalent en javascript aussi.
Bonne journée :) 
26 Juin 2007 17:13:44

Arg... lol. Je savais qu'elle existait cette balise! Je ne l'avait juste pas trouvée xD

Alors merci beaucoup, je vais essayer avec ça. Je devrais être capable de me débrouiller! Et le php reste plus acessible par tous les navigateurs, alors cette solution est meilleure ;) 

Bonne journée à toi aussi!
Contenus similaires
26 Juin 2007 20:02:22

Bon... alors là, j'ai tout complété et finalisé le code mais lorsque je valide, la page se recharge et... c'est tout. Voilà donc le code de la page "search.php":
  1. <?php
  2. if (isset($_POST['search_select'])&&isset($_POST['search_zone']))
  3. {
  4. switch($_POST['search_select'])
  5. {
  6. case 'google-ca':
  7. $strRecherche='http://www.google.ca/search?q='.$_POST['search_zone'];
  8. break;
  9.  
  10. case 'google-ca-fr':
  11. $strRecherche='http://www.google.ca/search?hl=fr&q='.$_POST['search_zone'];
  12. break;
  13.  
  14. case 'google-world':
  15. $strRecherche='http://www.google.com/search?q='.$_POST['search_zone'];
  16. break;
  17.  
  18. case 'google-images':
  19. $strRecherche='http://images.google.com/images?q='.$_POST['search_zone'];
  20. break;
  21.  
  22. case 'wikipedia':
  23. $strRecherche='http://fr.wikipedia.org/wiki/Special:Search?search='.$_POST['search_zone'];
  24. break;
  25.  
  26. case 'youtube':
  27. $strRecherche='http://youtube.com/results?search_query='.$_POST['search_zone'];
  28. break;
  29.  
  30. case 'urbanfonts':
  31. $strRecherche='http://www.urbanfonts.com/fontsearch.php?searchfont='.$_POST['search_zone'].'&showfree=Y&first=N';
  32. break;
  33.  
  34. case 'dafont':
  35. $strRecherche='http://www.dafont.com/search.php?psize=m&q='.$_POST['search_zone'];
  36. break;
  37.  
  38. case 'wikicommons':
  39. $strRecherche='http://commons.wikimedia.org/wiki/Special:Search?search='.$_POST['search_zone'];
  40. break;
  41.  
  42. case 'morguefile':
  43. $strRecherche='http://www.morguefile.com/archive/index.php?search_log=true&terms='.$_POST['search_zone'];
  44. break;
  45.  
  46. case 'stockexchange':
  47. $strRecherche='http://www.sxc.hu/browse.phtml?f=search&txt='.$_POST['search_zone'].'&w=1&x=0&y=0';
  48. break;
  49.  
  50. case 'flickrgpl':
  51. $strRecherche='http://www.flickr.com/search/?q='.$_POST['search_zone'].'&l=5';
  52. break;
  53.  
  54. case 'stockvault':
  55. $strRecherche='http://www.stockvault.net/search.php?search='.$_POST['search_zone'];
  56. break;
  57.  
  58. default: 'google-ca-fr'
  59. //mettre le moteur par défaut
  60. }
  61. header("Location: search.php ".$strRecherche);
  62. }
  63. else
  64. {
  65. //par exemple, une redirection vers ta page de recherche
  66. header("Location: http://www.foxleader.fr.nf/home" );
  67. }
  68. ?>


et voici le code de ma page de recherche:
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <title>FoxLeader's //Homepage</title>
  6. <style type="text/css">
  7. <!--
  8. body {
  9. background-image: url(images/background.png);
  10. }
  11. a{
  12. color: #333333;
  13. font-weight: bold;
  14. font-family: Geneva, Arial, Helvetica, sans-serif;
  15. font-size: 12px;
  16. }
  17. a:hover{
  18. color: #8fc400;
  19. }
  20. #mainbody {
  21. position:absolute;
  22. left:50%;
  23. top:50%;
  24. margin-left:-299px;
  25. margin-top:-154px;
  26. width:598px;
  27. height:307px;
  28. z-index:1;
  29. }
  30. #main_background {
  31. height:100%;
  32. width:100%;
  33. }
  34. #search {
  35. position:absolute;
  36. left:50%;
  37. top:50%;
  38. margin-left:-279px;
  39. margin-top:-46px;
  40. width:555px;
  41. height:60px;
  42. z-index:2;
  43. }
  44. #news {
  45. position:absolute;
  46. left:50%;
  47. top:50%;
  48. margin-left:-279px;
  49. margin-top:20px;
  50. width:557px;
  51. height:108px;
  52. z-index:3;
  53. }
  54. #date { position:absolute;
  55. left:50%;
  56. top:50%;
  57. margin-left:-280px;
  58. margin-top:-100px;
  59. width:560px;
  60. height:22px;
  61. z-index:2;
  62. }
  63. /*POUR LES CHAMPS DE LOGIN*/
  64.  
  65. .login-username{
  66. background-color: #f7f7f7;
  67. border-top-color: #999999;
  68. border-right-color: #aab3b3;
  69. border-bottom-color: #d5dddd;
  70. border-left-color: #aab3b3;
  71. height:22px;
  72. }
  73.  
  74. login-username{
  75. background-color: #f7f7f7;
  76. border-top-color: #999999;
  77. border-right-color: #aab3b3;
  78. border-bottom-color: #d5dddd;
  79. border-left-color: #aab3b3;
  80. height:22px;
  81. }
  82.  
  83. .login-username:focus{
  84. background-color: #ffffff;
  85. border-top-color: #6ab94b;
  86. border-right-color: #94da78;
  87. border-bottom-color: #aedf9a;
  88. border-left-color: #94da78;
  89. height:22px;
  90. }
  91.  
  92. input.login-username{
  93. border-top-width: 1px;
  94. border-right-width: 1px;
  95. border-bottom-width: 1px;
  96. border-left-width: 1px;
  97. border-top-style: solid;
  98. border-right-style: solid;
  99. border-bottom-style: solid;
  100. border-left-style: solid;
  101. border-top-color: #CCCCCC;
  102. border-right-color: #CCCCCC;
  103. border-bottom-color: #CCCCCC;
  104. border-left-color: #CCCCCC;
  105. width: 300px;
  106. padding-top: 2px;
  107. padding-right: 4px;
  108. padding-bottom: 0pt;
  109. padding-left: 4px;
  110. margin-top: 0pt;
  111. margin-right: 0pt;
  112. margin-bottom: 4px;
  113. margin-left: 0pt;
  114. height:22px;
  115. }
  116.  
  117. /*POUR LES LISTBOX*/
  118. .searchselect:hover, searchselect:focus{
  119. border-top-color: #66dd55;
  120. border-right-color: #55bb55;
  121. border-bottom-color: #459455;
  122. border-left-color: #55bb55;
  123. background:#FFFFFF;
  124. height:22px;
  125. }
  126.  
  127. .searchselect{
  128. border-top-width: 1px;
  129. border-right-width: 1px;
  130. border-bottom-width: 1px;
  131. border-left-width: 1px;
  132. border-top-style: solid;
  133. border-right-style: solid;
  134. border-bottom-style: solid;
  135. border-left-style: solid;
  136. border-top-color: #CCCCCC;
  137. border-right-color: #CCCCCC;
  138. border-bottom-color: #CCCCCC;
  139. border-left-color: #CCCCCC;
  140. background:#FFFFFF;
  141. height:22px;
  142. }
  143.  
  144. /*POUR LES BUTTONS*/
  145. .submit{
  146. background-color: #fefefe;
  147. border-top-width: 3px;
  148. border-right-width: 3px;
  149. border-bottom-width: 3px;
  150. border-left-width: 3px;
  151. border-top-style: double;
  152. border-right-style: double;
  153. border-bottom-style: double;
  154. border-left-style: double;
  155. border-top-color: #c4cccc;
  156. border-right-color: #acb5b5;
  157. border-bottom-color: #6f7777;
  158. border-left-color: #acb5b5;
  159. color: #2b333c;
  160. text-align: center;
  161. height:30px;
  162. }
  163.  
  164. .submit:hover, .submit:focus {
  165. border-top-width: 3px;
  166. border-right-width: 3px;
  167. border-bottom-width: 3px;
  168. border-left-width: 3px;
  169. border-top-style: double;
  170. border-right-style: double;
  171. border-bottom-style: double;
  172. border-left-style: double;
  173. border-top-color: #aedf9a;
  174. border-right-color: #94da78;
  175. border-bottom-color: #6ab94b;
  176. border-left-color: #94da78;
  177. height:30px;
  178. }
  179. -->
  180. </style>
  181. <script src="SpryAssets/SpryValidationSelect.js" type="text/javascript"></script>
  182. <script src="SpryAssets/SpryValidationTextField.js" type="text/javascript"></script>
  183. <link href="SpryAssets/SpryValidationSelect.css" rel="stylesheet" type="text/css" />
  184. <link href="SpryAssets/SpryValidationTextField.css" rel="stylesheet" type="text/css" />
  185. <style type="text/css">
  186. <!--
  187. .searchselect1 {border-top-width: 1px;
  188. border-right-width: 1px;
  189. border-bottom-width: 1px;
  190. border-left-width: 1px;
  191. border-top-style: solid;
  192. border-right-style: solid;
  193. border-bottom-style: solid;
  194. border-left-style: solid;
  195. border-top-color: #CCCCCC;
  196. border-right-color: #CCCCCC;
  197. border-bottom-color: #CCCCCC;
  198. border-left-color: #CCCCCC;
  199. background:#FFFFFF;
  200. height:22px;
  201. }
  202. -->
  203. </style>
  204. </head>
  205.  
  206. <body>
  207. <div id="mainbody">
  208. <div id="main_background" align="center"><img src="images/main.png" alt="Main Body" width="598" height="307" /></div>
  209. </div>
  210. <div id="search" align="center">
  211. <form id="form1" name="form1" method="post" action="search.php">
  212. <span id="sprytextfield1">
  213. <input name="search_zone" type="text" class="login-username" id="search_zone" size="60" />
  214. <span class="textfieldRequiredMsg">Veuillez entrer votre recherche</span></span><span id="spryselect1">
  215. <label></label>
  216. <span class="selectRequiredMsg">Sélectionnez votre moteur de recherche.</span></span>
  217. <select name="search_select" class="searchselect1" id="search_select">
  218. <option value="google-ca" >Google Canada</option>
  219. <option value="google-ca-fr" >Google Canada:Fr</option>
  220. <option value="google-world" >Google World</option>
  221. <option value="google-images" >Google Images</option>
  222. <option value="wikipedia" >Wikipedia (Fr)</option>
  223. <option value="youtube" >YouTube</option>
  224. <option value="urbanfonts" >UrbanFonts</option>
  225. <option value="dafont" >DaFont</option>
  226. <option value="wikicommons" >Wikimedia Commons</option>
  227. <option value="morguefile" >MorgueFile</option>
  228. <option value="stockexchange" >Stock Exchange</option>
  229. <option value="flickrgpl" >Flikr (GPL)</option>
  230. <option value="stockvault" >StockVault</option>
  231. </select>
  232. <p> <input name="startsearch" type="submit" class="submit" id="startsearch" value="Chercher!" /></p>
  233. </form>
  234. </div>
  235. <div id="news"></div>
  236.  
  237. <div id="date" align="center">
  238. <div align="right"><a>Beauport, le lundi 25 Juin, 23:56</a></div>
  239. </div>
  240. <script type="text/javascript">
  241. <!--
  242. var spryselect1 = new Spry.Widget.ValidationSelect("spryselect1");
  243. var sprytextfield1 = new Spry.Widget.ValidationTextField("sprytextfield1");
  244. var sprytextfield2 = new Spry.Widget.ValidationTextField("sprytextfield2");
  245. var spryselect2 = new Spry.Widget.ValidationSelect("spryselect2");
  246. //-->
  247. </script>
  248. </body>
  249. </html>


En espérant que quelqu'un puisse m'aider à régler mon problème! (Note: testé sous EasyPHP 2 Beta)

Si nécessaire, vous pouvex télécharger les fichiers du framework Spry ici: [cliquez-moi!]

Alors merci de votre aide à tous!

FoxLeader
26 Juin 2007 21:17:33

Salut,

dans ton switch, pour le default, il faut mettre:
  1. default:
  2. $strRecherche='http://www.google.ca/search?q='.$_POST['search_zone'];

Mais je ne pense pas que ce soit ca qui bugge.

Essaye de placer des echo pour voir si tu passes bien les conditions du debut.

Enfin, ton code html est un peu bordélique. C'est toi qui l'a écrit ou c'est généré automatiquement?

Bon courage ;) 
26 Juin 2007 21:20:54

C'est un mélange de moi-même et de généré, mais c'est sûr qu'il aurait besoin d'être nettoyé/reformulé.

Je vais essayer cela, on va voir ce que ça donnera!

Merci et bonne journée ;) 
27 Juin 2007 06:05:18

Oh non... là je crois que je devrais me pendre! J'avais deux index, l'un complet et l'autre incomplet (un .php et l'autre .html) et par défaut, c'était le .html (l'incomplet) qui s'affichait... donc ca ne fonctionnait pas!

Arg XD

Il fallait vraiment qu'il soit minuit pour m'en rendre compte...
Merci quand même de votre aide si précieuse!

Il ne me reste qu'à fignoler le code html ;) 
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS