Autocomplete dans boucle généré par un résultat requête [Résolu]

Messages postés
2
Date d'inscription
vendredi 9 novembre 2018
Dernière intervention
30 novembre 2018
-
Bonjour,
j'essaye de faire un autocomplete dans un résultat d'un query MySql mais malheureusement cela ne fonctionne pas et vu mon niveau en programmation je suis un peu perdu :)

Bref après quelques jours de recherche un peu partout je ne trouve pas solution à mon problème et espère que vous puissiez m'aider.

D'avance merci pour votre aide

Voici mon souci:
Je fais afficher une liste de circuits (requête mysql) où j'aimerais que chaque pilote puisse choisir un numéro de moto pour un circuit donné, les circuits ont bien sûr des ID différents.
J'aimerais que l'autocomplete fonctionne pour chaque ID "numero_moto" et je dois aussi récupérer l'ID du circuit pour vérification si le numéro est disponible pour ce circuit en particulier mais je n'y arrive pas.
L'autocomplete fonctionne très bien pour un seul circuit mais pas s'il y en a plusieurs.

Je me suis basé sur un exemple trouvé sur le web pour l'autocomplete que voici:

index.php
<label style="color: #000000; text-align:center;">N° souhaité:</label>
<input style="width: 50px;" type="text" id="numero_moto'.$i.'" onkeyup="autocomplet('.$i.')"/>
<div id="choix_nummoto_id'.$i.'"></div>


script.js
function autocomplet(i) {
 var keyword = $("#numero_moto+i").val();
 $.ajax({
  url: "ajax_refresh.php",
  type: "POST",
  data: {keyword:keyword},
  success:function(data){
   $("#choix_nummoto_id+i").show();
   $("#choix_nummoto_id+i").html(data);
  }
 });
}

// set_item : this function will be executed when we select an item
function set_item(item) {
 // change input value
 $("#choix_nummoto_id+i").val(item);
 // hide proposition list
 $("#choix_nummoto_id+i").hide();
}


ajax_refresh.php
// PDO connect *********
function connect() {
    return new PDO('mysql:host=host_db;dbname=db_name', 'user', 'password', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
}

$pdo = connect();
$keyword = '%'.$_POST['keyword'].'%';
$sql = "SELECT * FROM {$tb_inscription} WHERE nummoto_tb_inscription_circuit LIKE (:keyword) ORDER BY nummoto_tb_inscription_circuit ASC LIMIT 0, 10";
$query = $pdo->prepare($sql);
$query->bindParam(':keyword', $keyword, PDO::PARAM_STR);
$query->execute();
$list = $query->fetchAll();
foreach ($list as $rs) {
 // put in bold the written text
 $liste_nummoto = str_replace($_POST['keyword'], '<b>'.$_POST['keyword'].'</b>', $rs['nummoto_tb_inscription_circuit']);
 
 // add new option
    echo '<li onclick="set_item(\''.$rs['nummoto_tb_inscription_circuit'].'\')">'.$liste_nummoto.'</li>';
}
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
Messages postés
23500
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
5 décembre 2018
1
Merci
Bonjour
Tu dois mettre les +i en dehors de quotes.

Merci jordane45 1

Heureux de vous avoir aidé ! Vous nous appréciez ? Donnez votre avis sur nous ! Evaluez CodeS-SourceS

Codes Sources a aidé 98 internautes ce mois-ci

Commenter la réponse de jordane45
Messages postés
2
Date d'inscription
vendredi 9 novembre 2018
Dernière intervention
30 novembre 2018
0
Merci
Cool :) top!!!
Merci beaucoup c'est exactement ça
Commenter la réponse de DonRuca

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.