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

Signaler
Messages postés
2
Date d'inscription
vendredi 9 novembre 2018
Statut
Membre
Dernière intervention
30 novembre 2018
-
Messages postés
2
Date d'inscription
vendredi 9 novembre 2018
Statut
Membre
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>';
}

2 réponses

Messages postés
29642
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 octobre 2020
337
Bonjour
Tu dois mettre les +i en dehors de quotes.

Messages postés
2
Date d'inscription
vendredi 9 novembre 2018
Statut
Membre
Dernière intervention
30 novembre 2018

Cool :) top!!!
Merci beaucoup c'est exactement ça