Liste en barre de recherche

Fermé
matiou34 Messages postés 198 Date d'inscription mardi 22 avril 2008 Statut Membre Dernière intervention 27 janvier 2015 - 19 nov. 2010 à 12:10
matiou34 Messages postés 198 Date d'inscription mardi 22 avril 2008 Statut Membre Dernière intervention 27 janvier 2015 - 3 déc. 2010 à 16:57
Bonjour,

est-il possible de transformer une liste en une barre de recherche pour mon site web ?
Je m'explique, j'ai une liste de pays. Je voudrais que cette liste ne soit pas sous la forme d'un onglet mais qu'elle apparaisse comme une barre de recherche. J'ai déjà tous les mots clés à taper et l'adresse vers laquelle chaque mot devrait être rediriger.
C'est en quelque sorte une barre de recherche déjà programmée, sans être un véritable moteur de recherche interne.

Je vous remercie !


A voir également:

7 réponses

quicksylvere Messages postés 162 Date d'inscription samedi 6 novembre 2010 Statut Membre Dernière intervention 22 octobre 2013 19
19 nov. 2010 à 12:13
google te proposes de créer un moteur de recherche personnalisé (tu y laisses les infos que tu veux et tu le places ensuite sur ton site).
Tu penses que ça peut t'aider?

cette fonction est dispo sur le site de Google ( je ne me rappelle plus où tres exactement mais bon, c'est trouvable facilement!)
0
matiou34 Messages postés 198 Date d'inscription mardi 22 avril 2008 Statut Membre Dernière intervention 27 janvier 2015 4
19 nov. 2010 à 12:17
Bonjour,

merci de ton aide. J'ai déjà tester le script pour autre chose mais ce n'est exactement ce que je recherche.
Le problème est que chaque mot ont une action distincte. google ne permet pas cela.
J'ai par exemple le pays France qui lorsque je clique dessus s'affiche dans un cadre de ma page.
Sauf que je ne souhaite pas cliquer dessus mais je souhaite permettre au visiteur de le taper dans une barre de recherche. Je ne sais pas si je me fais comprendre :P
0
avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 500
19 nov. 2010 à 17:05
Salut.
Je ne suis pas sûr de bien comprendre.

Tu aimerais faire un champ texte qui afficher les pays commençant par ce qui est déjà écrit dans la zone ? Par exemple, l'utilisateur commence à écrire "I" et on voit apparaître "Italie", "Irak", "Inde", "Irlande" etc ?
0
matiou34 Messages postés 198 Date d'inscription mardi 22 avril 2008 Statut Membre Dernière intervention 27 janvier 2015 4
19 nov. 2010 à 17:59
Oui exactement. ça reprendrai ma liste déjà créer en faite, où chaque pays aurait une url spécifique
0

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

Posez votre question
avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 500
19 nov. 2010 à 18:14
Alors il suffit de faire comme n'importe quel système de suggestion.
Tu crées une liste pays_trouves par exemple. Ensuite, tu testes chaque entrée de ta liste des pays pour vérifier s'il commence par ce qui est entré dans le champ texte à l'aide d'une regex. Si oui, alors tu l'ajoutes à ta liste pays_trouves.
Après tu affiches chacune des entrées de la liste pays_trouves dans ton HTML.
0
matiou34 Messages postés 198 Date d'inscription mardi 22 avril 2008 Statut Membre Dernière intervention 27 janvier 2015 4
22 nov. 2010 à 20:44
Oui je vois, mais concrètement, ça donne quoi ? Aurais tu un script du même genre à me conseiller ?
Je te remercie
0
avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 500
22 nov. 2010 à 22:29
Je n'en ai pas sous la main
0
coeus Messages postés 3019 Date d'inscription samedi 13 janvier 2007 Statut Membre Dernière intervention 19 juin 2013 119
Modifié par coeus le 22/11/2010 à 23:31
Tu fais un select, puis un champ de texte qui fait réagir ton select :
<input type="text" id="choix" onchange="checklist(this.value);" /> 
<select id="liste"> 
 <option>...</option> 
 <option>...</option> 
 <option>...</option> 
</select> 

Accompagné d'une fonction Javascript :
<script>
function checklist(valeur) {
	var select = document.getElementById("liste");
	var liste = select.getElementsByTagName("option");
	for (x in liste) {
		var z = liste[x].value;
		var exp = new RegExp(valeur, "gi");
		if (z.test(exp)) {
			liste[x].selected="selected";
			break;
		}
	}
}
</script>


Note que j'ai écris ça en 5 minutes et que je n'ai pas testé, il peut y avoir des choses à arranger, mais ça va te donner la direction principale.
Laisse-nous savoir comment ça évolue ! ;-)
0
matiou34 Messages postés 198 Date d'inscription mardi 22 avril 2008 Statut Membre Dernière intervention 27 janvier 2015 4
23 nov. 2010 à 19:19
Merci, je vais essayer ça ce soir. je vous tiens au courant,
Merci beaucoup !
0
matiou34 Messages postés 198 Date d'inscription mardi 22 avril 2008 Statut Membre Dernière intervention 27 janvier 2015 4
23 nov. 2010 à 22:30
Hummm... ça n'a pas l'air de marcher ou alors je n'ai rien compris.
En faite, pour faire plus simple, ce que je recherche, c'est une liste déroulante avec mode de saisie.
C'est une liste déroulante où on peut taper des lettres et non pas sélectionner un élément.
Chaque élément a une destination etc (url)
0
coeus Messages postés 3019 Date d'inscription samedi 13 janvier 2007 Statut Membre Dernière intervention 19 juin 2013 119
23 nov. 2010 à 23:15
Est-ce que par hasard ce serait quelque chose comme ça que tu recherches :
http://developer.yahoo.com/yui/examples/autocomplete/ac_basic_array.html</code>

?
0
matiou34 Messages postés 198 Date d'inscription mardi 22 avril 2008 Statut Membre Dernière intervention 27 janvier 2015 4
23 nov. 2010 à 23:26
Oui c'est ça mais est-ce une simple liste à la base ?
Grosso modo je veux appliquer ma liste (exemple ci-dessous) à ce que vous venez de me montrer :
<OPTION VALUE="/beta/world/index.php?pays=YEMEN" target="Informations">YEMEN</option>
<OPTION VALUE="/beta/world/index.php?pays=ZAMBIA" target="Informations">ZAMBIA</option>
<OPTION VALUE="/beta/world/index.php?pays=ZIMBABWE" target="Informations">ZIMBABWE</option>
<OPTION VALUE="/beta/world/index.php?pays=GUERNSEY" target="Informations">GUERNSEY</option>
0
coeus Messages postés 3019 Date d'inscription samedi 13 janvier 2007 Statut Membre Dernière intervention 19 juin 2013 119
24 nov. 2010 à 13:05
Si c'est ce que tu cherches, alors non, ce n'est pas une liste. C'est seulement un array en Javascript. Il y a peut-être moyen de faire ça avec une liste mais là où tu en es, je te recommande fortement d'adopter la bibliothèque YUI ; le code est déjà là, assez facilement adaptable, et très très stable.

Si tu ne connais pas ces bibliothèques, dis-le moi, je vais essayer de te faire un guide pas à pas pour les installer et les utiliser. Ça risque d'être un peu compliqué au début, mais si ça peut te rassurer, je pense que ça en vaut la peine. Depuis que j'ai installé ça, je code assez peu de choses compliquées en Javascript. Je laisse les librairies faire le travail à ma place, moi je n'ai qu'à les adapter à mes besoins ! :-)

Si tu codes beaucoup en JS, tu vas avoir besoin d'une telle chose un jour ou l'autre, à moins d'être un craqué mental de ce langage, et encore...
0
coeus Messages postés 3019 Date d'inscription samedi 13 janvier 2007 Statut Membre Dernière intervention 19 juin 2013 119
1 déc. 2010 à 15:10
Je réponds ici à la question de matiou34 qui avait été posté en commentaire le 30 novembre. Pour plus de clarté. ;-)

Aïe... Ce que tu demandes est très basique à faire, mais pas seulement en HTML. Ou même en Javascript, ou sinon très très difficilement. Et très probablement pas du tout. Je dis peut-être par pur principe optimiste !

Je ne pense pas que tu aies parlé précédemment si tu connaissais le PHP ? Et les bases de données genre SQL ? Si oui, ça règle un gros problème.

Si non, il y a des alternatives, mais à deux conditions : que ce ne soit pas un site a fort volume, ET qu'il n'y ait pas d'information à protéger. Je peux te conseiller des solutions "esthétiques" mais qui vont mettre à zéro la sécurité de ton site, dans le sens où quiconque s'y connaît un peu pourra se connecter sur les comptes de tes utilisateurs. Donc si c'est un petit site personnel que personne n'aurait vraiment envie de pirater, pas de souci ! Mais s'il y a des informations réellement privées... Alors malheureusement il va falloir que tu connaisses le PHP et le SQL un minimum ! :-S

Pour m'aider, tu peux peut-être me donner quelques précisions de plus : qu'est-ce que la page utilisateur va contenir ? Y a-t-il une raison particulière pourquoi l'utilisateur voudrait "détruire" sa page ?
0
matiou34 Messages postés 198 Date d'inscription mardi 22 avril 2008 Statut Membre Dernière intervention 27 janvier 2015 4
1 déc. 2010 à 16:46
Hello !
Alors oui, j'ai quelques bases en php et sql. Je viens de tester et j'arrive à créer une section membre protégée par mdp (via ce site : https://www.phpfacile.com/apprendre_le_php/section_membre
Donc aucun problème de ce côté ci.
La difficulté est que je ne veux pas un accès membre pour accéder à un lot de pages et que tout le monde ait accès aux même pages. Il faudrait si possible que chacun des utilisateurs aient accès à une page "type" mais différente en fonction de son identifiant et de ce qu'il a marqué précédemment etc.
Car ce sont des données "privées", que d'autres personnes n'ont pas à voir ou seulement si elles ont ce mdp et cet identifiant.
Le but de "détruire" cette page est que l'utilisateur peut détruire ces données sans ce souciet d'envoyer un mail ou quoi que ce soit.

Est-ce possible ?
0
coeus Messages postés 3019 Date d'inscription samedi 13 janvier 2007 Statut Membre Dernière intervention 19 juin 2013 119
1 déc. 2010 à 17:29
Oui, c'est clairement possible.
Tu n'as qu'à créer un fichier .php :
www.w3schools.com/php/func_filesystem_fwrite.asp
Et tu fais une page sur laquelle tous les utilisateurs vont une fois qu'ils se sont identifiés. Et sur cette page commune, tu fais un include() ou un require() vers le fichier PHP créé précédemment.
www.w3schools.com/php/php_includes.asp

Là je ne sais pas les complexité que les fichiers PHP peuvent avoir, mais au pire, tu peux, au lieu du include, faire une fonction qui utilise un readfile() pour lire le fichier une ligne à la fois, ce qui peut dans certains cas faciliter l'affichage de l'information :
www.w3schools.com/php/func_filesystem_readfile.asp

Est-ce que ça répond à ta question ?
0
matiou34 Messages postés 198 Date d'inscription mardi 22 avril 2008 Statut Membre Dernière intervention 27 janvier 2015 4
1 déc. 2010 à 17:37
Je vais tester et te dire :)
Merci en tout cas
0
matiou34 Messages postés 198 Date d'inscription mardi 22 avril 2008 Statut Membre Dernière intervention 27 janvier 2015 4
1 déc. 2010 à 17:47
Bon j'ai réussi à faire ça.
Donc en gros si le fichier à lire permet d'écrire des commentaire ou de publier quelque chose (sorte de micro forum), seules les utilisateurs avec un identifiant défini pour avoir accès à cette page ? Par exemple, l'Utilisateur A n'aura pas le même microforum ou page de commentaire que l'utilisateur B ? Je n'en suis pas sûr :/
0
coeus Messages postés 3019 Date d'inscription samedi 13 janvier 2007 Statut Membre Dernière intervention 19 juin 2013 119
1 déc. 2010 à 19:58
C'est bien comme ça que je l'avais compris, je crois...
Si tu veux que plusieurs utilisateurs aient accès à un même fichier, alors tu peux faire une association, dans la base de données, entre un nom de fichier et une liste d'IDs d'utilisateurs ; et tu vérifies, si l'utilisateur appartient à cette liste, alors ledit fichier apparaît !
0