Autocomplete dans boucle généré par un résultat requête

Messages postés
1
Date d'inscription
vendredi 9 novembre 2018
Dernière intervention
9 novembre 2018
- 9 nov. 2018 à 09:35 - Dernière réponse :
Messages postés
23284
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 novembre 2018
- 9 nov. 2018 à 13:03
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

1 réponse

Messages postés
23284
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 novembre 2018
- 9 nov. 2018 à 13:03
0
Merci
Bonjour
Tu dois mettre les +i en dehors de quotes.

Commenter la réponse de jordane45

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.