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
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
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:
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
$("#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
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
Partager