Partage
  • Partager sur Facebook
  • Partager sur Twitter

moteur de recherche interne

    20 juillet 2016 à 0:48:59

    Bonjour, j'ai fais un petit moteur de recherche interne a un site web qui donne des proposition selon la valeur :

    html

    <!DOCTYPE html>
    <html>
    	<head>
    		<meta charset="utf-8">
    		<title>Test</title>
    		<script src="test.js"></script>
    		<link rel="stylesheet" type="text/css" href="test.css" />
    	</head>
    	<body onload="javascript:defineValue()">
    		<div id="ensemble">
    			<input type="text" id="recherche" onkeyup="javascript:recherche()" />
    			<div id="globeResult"></div>
    		</div>
    	</body>
    </html>

    CSS

    #ensemble{
    	width: 500px ;
    	margin: auto ;
    	margin-top: 50px ;
    }
    
    #recherche, #result{
    	width: 460px ;
    	margin: 0px 20px ;
    }
    
    #result{
    	border: 1px solid black ;
    }
    
    .choix:hover{
    	background-color: gray ;
    }

    JS

    var choix = ['bonjour','benoit','bernard','berger','bergerie', 'balance', 'bague'] ;
    
    function recherche(){
    	var elt = document.getElementById('recherche').value ;
    	var eltContenu = "" ;
    	var nbReponse = 0 ;
    	if(elt == ""){
    		document.getElementById('globeResult').innerHTML = "" ;
    	}else{
    		for(var i=0;i<choix.length;i++){
    			if(choix[i].indexOf(elt) >= 0 && nbReponse < 5){
    				eltContenu += "<div class='choix' onclick='javascript:query()'>" + choix[i] + "</div>" ;
    				nbReponse++ ;
    			}
    		}
    		if(eltContenu != "") document.getElementById('globeResult').innerHTML = "<div id='result'>" + eltContenu + "</div>" ;
    		else document.getElementById('globeResult').innerHTML = "" ;
    	}
    }
    
    function query(){
    	document.location.href="test.html?q=" + document.getElementById('recherche').value ;
    }
    
    function $_GET(param) {
    	var vars = {};
    	window.location.href.replace( location.hash, '' ).replace( 
    		/[?&]+([^=&]+)=?([^&]*)?/gi, // regexp
    		function( m, key, value ) { // callback
    			vars[key] = value !== undefined ? value : '';
    		}
    	);
    
    	if ( param ) {
    		return vars[param] ? vars[param] : null;	
    	}
    	return vars;
    }
    
    function defineValue(){
    	document.getElementById('recherche').value = $_GET('q') ;
    }
    
    
    

    Sa marche super, seul soucis, quand je clique sur un choix, mon parametre GET met la valeur actuel du input et non la valeur du choix, et je n'arrive pas a modifier cela.

    Merci d'avance !



    • Partager sur Facebook
    • Partager sur Twitter

    CodeWe is an open-source live code-sharing website.

      21 juillet 2016 à 22:09:40

      s'il  vous plait :D
      • Partager sur Facebook
      • Partager sur Twitter

      CodeWe is an open-source live code-sharing website.

        23 juillet 2016 à 0:34:58

        please
        • Partager sur Facebook
        • Partager sur Twitter

        CodeWe is an open-source live code-sharing website.

          23 juillet 2016 à 3:00:08

          Change ta fonction query() de telle sorte qu'elle prenne en entrée une chaine de caractère (le choix). Comme ça lorsque tu attaches l'évènement du clic sur chaque choix, tu passes la valeur de ce dernier à la fonction ;-)

          function query(choix){
          document.location.href="test.html?q=" choix;

          } 

          • Partager sur Facebook
          • Partager sur Twitter

          Contentes toi juste de poser, chaque jour, la pierre de la plus belle des façons!

            23 juillet 2016 à 22:50:58

            merci du com ! seul soucis :

              eltContenu += "<div class='choix' onclick='javascript:query()'>" + choix[i] + "</div>" ;

            ici, si j'ajoute un argument, je ne peux plus utilisé "blabla" ni 'blabla' sinon sa ferme étant donné que je les ai déja utilisé.  que faire ?

            • Partager sur Facebook
            • Partager sur Twitter

            CodeWe is an open-source live code-sharing website.

              25 juillet 2016 à 20:21:52

              Heu... sérieusement je n'ai rien pigé à ta question!
              • Partager sur Facebook
              • Partager sur Twitter

              Contentes toi juste de poser, chaque jour, la pierre de la plus belle des façons!

              moteur de recherche interne

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown