Bonjour,
J'ai un problème assez complexe, du moins pour moi
Ce code fonctionne bien tant qu'un résultat est extrait de la base de donnée
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
<?php
header( 'content-type: text/html; charset=utf-8' );
 
include('../sql/db_config.inc.php');
include('../sql/db_connect.inc.php');
 
$sql_search = 'SELECT * FROM tb_marques ORDER BY fd_marque ASC';
$query_search = mysql_query($sql_search)or die(mysql_error());
$nb_search = mysql_num_rows($query_search);
 
// Rudimentary search
	$matches = array();
 
 
	while($data_search=mysql_fetch_assoc($query_search)){
		$marques[]=$data_search;
	}
 
 
	// Cleaning up the term
	$term = trim(strip_tags($_GET['term']));
 
if($nb_search){	
	foreach($marques as $marque){
		if(stripos($marque['fd_marque'], $term) !== false){
			// Add the necessary "value" and "label" fields and append to result set
			$marque['value'] = $marque['fd_marque'];
			$marque['label'] = "{$marque['fd_marque']}, {$marque['id_marque']}";
			$matches[] = $marque;
		}
	}
}else{
// Comment faire pour ui.item.id_marque retourne un 0 (voir plus bas)
}
 
	// Truncate, encode and return the results
	$matches = array_slice($matches, 0, 5);
	print json_encode($matches);
 
 
include('../sql/db_disconnect.inc.php');
 
 
?>
Le problème vient que si aucun résultat est trouvé dans la base de donnée
c'est partie n'est pas appliquée

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
foreach($marques as $marque){
		if(stripos($marque['fd_marque'], $term) !== false){
			// Add the necessary "value" and "label" fields and append to result set
			$marque['value'] = $marque['fd_marque'];
			$marque['label'] = "{$marque['fd_marque']}, {$marque['id_marque']}";
			$matches[] = $marque;
		}
	}
et h'ai besoin qu'un resluta soit retourné, s'il y a rien trouvé.

MAIS.... je dois récupéré dans le même format.

Je vous donne un exemple en vous donnant encore ces information.

La requete est envoyée avec ajax comme ceci:
Code javascript : 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
// Autocomplete marque
	var ac_marques = {
		source: 'http://www.web.com/manager/templates/naoux/xmlhttprequest/autocomplete-marques.php',
		autoFocus: true,
		close: function( event, ui ) {
			$("#h_marque").val("");
		},
		minLength: 1,
		select:function(event, ui){
			$("#f_marque").val(ui.item.id_marque);
 
			if($("#"+$(this).attr('id')+"_h").length){
				$("#"+$(this).attr('id')+"_h").val(ui.item.id_marque);
			}
		}
	};
 
	$(".fmarque").autocomplete(ac_marques);

Donc ceci recupère l'id
Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
$("#f_marque").val(ui.item.id_marque);

Donc s'il ne trouve rien dans la base de donnée, j'aimerais que
me retourne un 0.

C'est cette partie
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
$marque['value'] = $marque['fd_marque'];
$marque['label'] = "{$marque['fd_marque']}, {$marque['id_marque']}";
$matches[] = $marque;
qui doit etre ajouté et modifiée après le else du if($nb_search), mais j'ai aucune idée comment


M'avez vous compris?
Merci