Suggestions dans un formulaire d'interrogation d'une BDD

lavercq -  
Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
J'ai un premier script qui permet d'afficher des suggestions tirées de ma BDD, mais je suis bloqué pour la suite...
C'est-à-dire, que je ne sais pas comment faire pour que le choix de l'article que le visiteur a fait dans les quelques propositions présentées, le conduise sur l'article au complet, tel qu'il est dans enregistré dans la Base...
J'espère être clair...?

Voici le premier script :
<link rel="stylesheet" type="text/css" href="autosug.css" />

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" />
</script>
<script>
function suggest(inputString){
if(inputString.length == 0) {
$('#suggestions').fadeOut();
} else {
$('#X').addClass('load');
$.post("autosuggest.php", {queryString: ""+inputString+""}, function(data){
if(data.length >0) {

$('#suggestions').fadeIn();
$('#suggestionsList').html(data);
$('#sjhProv').removeClass('load');
}
});
}
}

function fill(thisValue) {
$('#X').val(thisValue);
setTimeout("$('#suggestions').fadeOut();", 300);
}
</script>

<form id="form" action="autosuggest.php">
<div id="suggest">Start to type a item povençal: <br />
<input type="text" size="25" value="" id="X" onkeyup="suggest(this.value);" onblur="fill();" class="" />

<div class="suggestionsBox" id="suggestions" style="display: none;">
<div class="suggestionList" id="suggestionsList">   </div>
</div>
</div>
</form>

Et voici le fichier d'interrogation de la BDD, auquel il manque quelque chose pour que le choix fait d'après les suggestions, conduise vers l'affichage de l'article au complet tel qu'il est enregistré dans la Base:

<?php

include "connectdb.php";
@mysql_select_db('mabase,$cnx');


if(isset($_POST['queryString'])) {
$queryString = $_POST['queryString'];

if(strlen($queryString) >0) {

$requete = "SELECT X FROM maBase WHERE X LIKE '$queryString%' LIMIT 10";
$requete=htmlspecialchars($requete);
$sqls = @mysql_query($requete,$cnx) or exit(mysql_error() . "<br/>$requete");
if($sqls) {
echo '<ul>';
while ($sql = mysql_fetch_array($sqls)) {

$X = utf8_encode(($sql['X']));
echo("<li>$X</li>");

}
echo '</ul>';

}
}}


?>

Merci de votre attention à mon problème, lié à mes lacunes de profane.
Bonne journée.




1 réponse

Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
salut,
tu dois appeler un script diffférent de celui qui fait l'autosuggestion

<form id="form" action="script_recherche.php"> 
<div id="suggest">Start to type a item povençal: <br /> 
<input type="text" size="25" name="recherche" value="" id="X" onkeyup="suggest(this.value);" onblur="fill();" class="" /> 

<div class="suggestionsBox" id="suggestions" style="display: none;"> 
<div class="suggestionList" id="suggestionsList">   </div> 
</div> 
</div> 
</form>  

script_recherche.php:

<?php 

include "connectdb.php"; 
@mysql_select_db('mabase,$cnx'); 
 if(isset($_POST['recherche'])) { 
  $queryString = mysql_real_escape_string($_POST['recherche']); //on sécurise  

  if(strlen($queryString) >0) { 
   // X comme nom de champ de table ce n'est pas très judicieux 
   $requete = "SELECT X FROM maBase WHERE X LIKE '$queryString%' LIMIT 10";    
   //$requete=htmlspecialchars($requete); // NON on sécurise avec mysql_real_escape_string ci dessus 
   //$sqls = @mysql_query($requete,$cnx) or exit(mysql_error() . "<br/>$requete"); 
   // @empèche l'affichage des erreurs 
   $result = mysql_query($requete,$cnx) or die(mysql_error() . "<br />$requete"); 
    
   echo '<ul>'; 
   while ($row = mysql_fetch_array($result)) { 
    $X = utf8_encode(($row['X'])); 
    echo "<li>$X</li>"; 
   } 
   echo '</ul>'; 
  } 
 } 


?> 
0