Page 1 sur 1

AutoCompletion

Posté : 17 mai 2014, 13:54
par Michel6359
Bonjour

je suis occupé sur une recherche avec autocompletion , je que je voudrai c'est que liste soit cliquable et me renvois vers une fiche d'information avec le détail avec ce lien :
location.href = '/Fiche/Fiche.php?solution=' + id;

Mais j'ai toujours et je n'arrive pas à trouver mon erreur : No search results :?:

Merci d'avance pour votre aide :D

Ma page Index :

[javascript]
<!-- ############## AUTO COMPLETE ######################-->
<script src="js/jquery.ui.autocomplete.html.js"/></script>
<script src="js/jquery.autocomplete.js"/></script>
<script src="http://code.jquery.com/ui/1.10.4/jquery ... /></script>

<script type="text/javascript">
$(document).ready(function($){
$('#Autocomplte').autocomplete({
source:'AUTO_COMPLETE.php',
minLength:4,
select: function(event,ui){
var id = ui.item.id;
if(id != '') {
location.href = '/Fiche/Fiche.php?solution=' + id;
}
},
// optional
html: true,
// optional (if other layers overlap the autocomplete list)
open: function(event, ui) {
$(".ui-autocomplete").css("z-index", 1000);
}
});
});
</script>

[/javascript]


HTML
 <!-- ###### SYSTEME DE RECHERCHE PAR AUTO COMPLETE ###### -->
      <form action="" method="post">
      <input type="text" placeholder="Titre" id="Autocomplte" class="ui-autocomplete-input" autocomplete="off" />
      </form>
      <!--######################################################-->


Mon fichier php
<?php
     
    // Informations de la base de donnée
	$mysql_acces_host = '127.0.0.1';
	$mysql_acces_user = 'user ';
	$mysql_acces_password = 'password ';
	$mysql_bdd = 'bdd';
	
	mysql_connect("$mysql_acces_host", "$mysql_acces_user", "$mysql_acces_password");
	mysql_select_db("$mysql_bdd");
    
	// REQUETE  //
	$requete = mysql_query("SELECT * FROM test WHERE solution LIKE '%$term%' or format LIKE '%$term%' ORDER BY solution,format");
	$liens = mysql_num_rows($requete);  
	
	
	    while( $liens = mysql_fetch_array($requete)){
	    //while($row = mysqli_fetch_array($data)) {
		$solution = htmlentities(stripslashes($row['solution']));
		$format = htmlentities(stripslashes($row['format']));
		$id = htmlentities(stripslashes($row['id']));
		$a_json_row["id"] = $id;
		$a_json_row["value"] = $solution.' '.$format;
		$a_json_row["label"] = $solution.' '.$format;
		array_push($a_json, $a_json_row);
	}
 
 
/* jQuery wants JSON data */
echo json_encode($a_json);
flush();
 
$mysqli->close();
?>

Re: AutoCompletion

Posté : 19 mai 2014, 11:47
par moogli
salut,

c'est dans ton formulaire que tu as ce message ?

parce que la :
<?php
 $requete = mysql_query("SELECT * FROM test WHERE solution LIKE '%$term%' or format LIKE '%$term%' ORDER BY solution,format");
$term n'existe pas

de plus
<?php
 mysql_connect("$mysql_acces_host", "$mysql_acces_user", "$mysql_acces_password");
les " sont totalement inutile et vont à l'encontre des performances  :mrgreen: 
<?php
 mysql_connect($mysql_acces_host, $mysql_acces_user, $mysql_acces_password);
as tu testé le script php seul ? (voir s'il retourne bien ce que tu veux)

@+

Re: AutoCompletion

Posté : 19 mai 2014, 12:30
par Michel6359
Bonjour

C'est dans mon formulaire que j'ai cette erreur : No search results.
Variable non définie ?

Je comprend Pas :?:
Dans la console Google chrome j'ai :

Uncaught ReferenceError: $ is not defined
Uncaught TypeError: Cannot read property 'autocomplete' of undefined
Failed to load resource: the server responded with a status of 404 (Not Found) http://****/img/ui-anim_basic_16x16.gif

Mon tuto suivi vient de : http://www.pontikis.net/blog/jquery-ui- ... ep-by-step

Re: AutoCompletion

Posté : 19 mai 2014, 14:23
par moogli
Uncaught ReferenceError: $ is not defined
ça c'est que jQuery n'est pas utilisable t'es certain que c'est bien chargé ? (onglet réseau tu verras si le code retour est 200 ou 404 :))
tu peux aussi tester directement dans le console javascript.


@+

Re: AutoCompletion

Posté : 19 mai 2014, 19:10
par Michel6359
Bonjour

Non je n'ai pas de 404 , j'ai 304

Remote Address:173.194.70.95:80
Request URL:http://ajax.googleapis.com/ajax/libs/jq ... ry.min.map
Request Method:GET
Status Code:304 Not Modified #-o

je vais continuer de vérifier mes liens ??

Re: AutoCompletion

Posté : 20 mai 2014, 10:50
par Michel6359
Bonjour

Bon j'ai réussi j'ai vérifier tout mes liens et c ok Merci pour ton aide .

Maintenant je voudrai que la sélection soit cliquable

Je sélectionne , et lorsque je clique cela me dirige vers une fiche avec les infos complémentaires , mais je ne vois pas comment et pourtant je cherche .

Donc quand je clique sur le résultat (Pour lequel j'aimerai afficher solution , format ) je voudrais être dirigé vers : http://www.***.com/Web/Fiche/Fiche.php?fiche=id

Merci pour votre Aide

[javascript]
<script type="text/javascript">
$(function() {
// ## autocomplete ## //
$(".auto").autocomplete({
source: "search.php",
// ### select: function( ) { pas bon cette partie ###//
//### window.location = ui.item.url;} ###//
minLength: 2
});
});
</script>
[/javascript]

Mon PHP

<?php
define('DB_SERVER', 'localhost');
define('DB_USER', '***');
define('DB_PASSWORD', '***');
define('DB_NAME', '***');
 
 
if (isset($_GET['term'])){
	$return_arr = array();
 
	try {
	    $conn = new PDO("mysql:host=".DB_SERVER.";port=8889;dbname=".DB_NAME, DB_USER, DB_PASSWORD);
	    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
	    
	    $stmt = $conn->prepare('SELECT id,solution,format FROM Fiches WHERE solution,format LIKE :term');
	    $stmt->execute(array('term' => '%'.$_GET['term'].'%'));
	    
	    
		while($row = $rs->fetch_assoc()) {
  $a_json_row["url"] = $row['id'];
  $a_json_row["value"] = $row['solution'].' '.$row['format'];
  $a_json_row["label"] = $row['solution'].' '.$row['format'];
  array_push($a_json, $a_json_row);
}
 
	} catch(PDOException $e) {
	    echo 'ERROR: ' . $e->getMessage();
	}
 
    // highlight search results
$a_json = apply_highlight($a_json, $parts);
 
$json = json_encode($a_json);
print $json;
    /* Toss back results as json encoded array. */
    //echo json_encode($return_arr);
}
 
?>