Bonjour,

j'essaie de faire fonctionner mon script, qui fonctionnait très bien avec le Jquery "normal" mais qui ne fonctionne pas avec Jquery Mobile

je cherche à effectuer un autocomplete depuis une source distante comme celui-ci : http://mobile.jquery-fr.com/demos/wi...te-remote.html

Voici mon script qui fonctionnait bien mais plus sous Jquery Mobile :
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
<div data-role="fieldcontain"><label for="nom">Nom du lieu </label>
<input type="text" required="required" name="nom" tabindex="2" id="nom" value="<?php echo stripslashes($lieu_affiche); ?>"	/>
</div>
<div data-role="fieldcontain"><label for="ville"></label>
<input type="text" name="ville" id="ville" readonly="yes" value="<?php echo $ville_recupere; ?>"/>
</div>
<div data-role="fieldcontain"><label for="secteur"></label>
<input type="text" name="secteur" id="secteur" readonly="yes" value="<?php echo $secteur_recupere; ?>"/>
</div>
<div data-role="fieldcontain"><label for="maps"></label>
<input type="text" name="maps" id="maps" readonly="yes" value="<?php echo $maps_recupere; ?>" />
</div>
<script type="text/javascript"><!-- DEBUT affichage du lieu -->
	$("#nom, #ville, #secteur, #maps").autocomplete({
		source: function (request, response)
		{	var objData = {};
				if ($(this.element).attr('id') == 'nom')
					{	objData = { nom: request.term, maxRows: 20 };	}
				else
					{	
						objData = { ville: request.term, maxRows: 20 };
						objData = { secteur: request.term, maxRows: 20 };	
						objData = { maps: request.term, maxRows: 20 };
					}
			$.ajax({
			url: "autocompletion2.php",
			dataType: "json",
			data: objData,
			type: 'POST',
			success: function (data)
				{	response($.map(data, function (item)
					{	return {	label: item.Nom + " ( " + item.Ville + " ) ",
									value: function ()
										{	if ($(this).attr('id') == 'nom')
												{	$('#ville').val(item.Ville);
													$('#secteur').val(item.Secteur);
													$('#maps').val(item.Maps);
													return item.Nom + " ( " + item.Ville + " )";
													return item.Secteur;return item.Maps;
												}
											else
												{	$('#nom').val(item.Nom);return item.ville;	}
										}
								}
					}));
				}
			});
		},
		minLength: 1,	delay: 300
	});
</script><!-- FIN affichage du lieu -->
et le code autocompletion2.php :
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
<?php
function strip_slashes(&$v, $k)
        {       $v = stripslashes($v)}
?>
<?php
class AutoCompletion 
{public $Nom;public $Ville;public $Secteur;public $Maps;}       
//Initialisation de la liste
$list = array();
//Connexion MySQL
require('configuration.php');   // $db dans le fichier !
try     {$db;}
catch (Exception $ex)
{echo $ex->getMessage();}
//Construction de la requete
$strQuery = "SELECT nom Nom, ville Ville, secteur Secteur, maps Maps FROM lieu WHERE ";
if (isset($_POST["nom"]))
{$strQuery .= "nom LIKE :nom ";}
else    {       $strQuery .= "ville LIKE :ville ";      $strQuery .= "secteur LIKE :secteur "$strQuery .= "maps LIKE :maps ";        }
if (isset($_POST["maxRows"]))   //Limite
        {       $strQuery .= "LIMIT 0, :maxRows";       }
$query = $db->prepare($strQuery);
if (isset($_POST["nom"]))
        {       $value = "%".$_POST["nom"]."%"; $query->bindParam(":nom", $value, PDO::PARAM_STR);      }
else
        {       $value = $_POST["ville"]."%";
                $query->bindParam(":ville", $value, PDO::PARAM_STR);
                $value = $_POST["secteur"]."%";
                $query->bindParam(":secteur", $value, PDO::PARAM_STR);
                $value = $_POST["maps"]."%";
                $query->bindParam(":maps", $value, PDO::PARAM_STR);
        }
if (isset($_POST["maxRows"]))   //Limite
        {       $valueRows = intval($_POST["maxRows"]);         $query->bindParam(":maxRows", $valueRows, PDO::PARAM_INT);      }
$query->execute();
$list = $query->fetchAll(PDO::FETCH_ASSOC);
array_walk_recursive($list, 'strip_slashes');
echo json_encode($list);
?>