Bonjour,

J'utilise l'autocomplete jquery ui. Je souhaite rendre possible la mise en évidence des caractères tapés (par du gras par ex), ceci dans la liste des items proposés. Par ex si je tape "ra", il me serait proposé :
radin
parade
etc
L'utilisation de preg_replace et d'une expression régulière semble convenir à la problématique :

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
 
if ($conn)
	{
		$fetch = mysql_query("SELECT * FROM (SELECT titre AS res, concat('t',id_livre)AS id
  FROM livre
 WHERE titre LIKE '%".mysql_real_escape_string($_GET['term'])."%'
 
 union ALL
SELECT prenom_nom_cb AS res, concat('c',id_contributeur) AS id
  FROM contributeurs
 WHERE nom_prenom_cb LIKE '%".mysql_real_escape_string($_GET['term'])."%'OR prenom_nom_cb LIKE '%".mysql_real_escape_string($_GET['term'])."%') AS resultat ORDER BY res ASC LIMIT 0,10");
 
//particularité du jquery autocomplete =>Le passage de la valeur cherchée se fait par la variable $_GET['term']	
 
		while ($row = mysql_fetch_array($fetch, MYSQL_ASSOC)) {
 
$row['res']= preg_replace('.(' . preg_quote($_GET['term']) . ').i', '<span style="color:red">\1</span>', $row['res']);//mise en évidence lettres tapées dans liste proposition
 
			$row_array['value'] = $row['res'];
 
			array_push($return_arr,$row_array);
		}
	}
 
	mysql_close($conn);
 
	echo json_encode($return_arr);
Or la combinaison du preg_replace et de l'expression régulière ne donne pas le résultat escompté. Si je tape dans l'input text les caractères "ra", le système m'affiche le choix suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
pa<span style="color:red">ra</span>de
au lieu de colorer en rouge les caractères "ra".
Voyez-vous les raisons de ce dysfonctionnement ? Merci.