Bonjour,
Je suis en train de bricoler un petit script d'autocomplete de champ input. Ceux proposés sur le net ne me plaisent pas ou je n'y comprends rien ^^
Bref, là n'est pas la question. Tout le script fonctionne plutôt bien sauf quand je décide de cliqué sur un des choix que l'ajax me propose. En gros, il dois transmettre deux variables pour changer les valeurs de deux champs inputs. Problème, l'id chiffré passe sans problème mais pas le nom de la catégorie. Firebug me répond que le nom n'est pas définis. Je ne sais pas ce qu'il attends sur ce coup là car il me semble que tout est définis.
fichier qui suggère
le formulaire
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 <?php header('Content-type: text/html; charset=utf-8'); // on inclut la connexion include ("include/config.php"); // on inclut la connexion $connexion=mysql_connect($host, $user, $pass); $database=mysql_select_db($nombase); // on fait la requête $sql = "SELECT * FROM categorie_pub WHERE nom LIKE '%".$_POST['cat']."%'"; $req = mysql_query($sql); $verif = mysql_num_rows(MYSQL_QUERY($sql)); if ($verif > 0) { $i = 0; echo '<ul>'; // on boucle sur tous les éléments while($autoCompletion = mysql_fetch_assoc($req)){ echo utf8_encode("<li onClick='scp($autoCompletion[id]);' >$autoCompletion[nom]</li>"); } echo '</ul>'; die(); } ?>
Pour le moment, je ne transmets qu'une valeur car je ne sais plus ou chercher.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62 <script type="text/javascript" src="script/browser.js"></script> <script type="text/javascript" src="script/fonction.js"></script> <script language="javascript"> function autocomplete(saisie) { var xhr = getXMLHttpRequest() // On défini ce qu'on va faire quand on aura la réponse xhr.onreadystatechange = function(){ texte = xhr.responseText; // On ne fait quelque chose que si on a tout reçu et que le serveur est ok if(xhr.readyState == 4 && xhr.status == 200){ if (saisie) { if (texte) { a('suggestion').innerHTML = texte + saisie; a('suggestion').style.display = "block"; } } else { a('suggestion').style.display = "none"; a('id_categorie').value = 0; } } } xhr.open("POST","categorie_pub.php",true); xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; Charset=utf-8"); xhr.send('cat='+saisie); } function scp(idpub,nompub) { a('id_categorie').value = idpub a('categorie').value = nompub a('suggestion').style.display = "none"; } </script> <div id="contenu_admin"> <form> <ul> <li> <label> Titre : </label> <input type="text" name="titre" value="" /></li> <li> <label> Descriptif : </label> <input type="text" name="description" value="" /></li> <li> <label> Catégorie : </label> <input type="text" name="categorie" id="categorie" value="" onKeyup="autocomplete(this.value);" /></li> <div id="suggestion" style="display:none;"></div> <li> <label> Id de la catégorie : </label> <input type="text" name="id_categorie" id="id_categorie" value="0" /></li> <li> <label> Url : </label> <input type="text" name="url" value="" /></li> <li> <label> Miniature : </label> <input type="text" name="image" value="" /></li> <li> <label> Type de lien : </label> <SELECT NAME="type"> <OPTION VALUE="1">Texte <OPTION VALUE="2">Mixte <OPTION VALUE="3">Script </SELECT> </li> <li> <label> Script : </label> <textarea name="script"></textarea></li> </ul> <input type="submit" /> </form> </div>
Un grand merci à ceux qui s'attarderont sur le problème.
Partager