Suggestions dans un formulaire d'interrogation d'une BDD

Fermé
lavercq - 5 avril 2013 à 16:32
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 6 avril 2013 à 10:01
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 dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
Modifié par Alain_42 le 6/04/2013 à 10:03
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