IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

jQuery Discussion :

Autocomplétion PHP Mysql Jquery


Sujet :

jQuery

  1. #1
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2016
    Messages : 4
    Points : 4
    Points
    4
    Par défaut Autocomplétion PHP Mysql Jquery
    Bonjour la communauté, je suis nouvelle dans le furum et j'ai un soucis pour réaliser un système de recherche avec autocomplétion en php mysql et jquery.
    J'ai fait des recherche et je suis tombé sur le lien suivant: http://x-zolezzi.developpez.com/tuto...utocompletion/ qui me donne un exemple, j'ai téléchargé le fichier zip et j'ai suivi la procédure d'installation décrite dans le fichier install.txt afin de l'adapter à mon contexte mais jusqu'ici je n'ai pas de résultat.
    Si quelqu'un peut me guider et me dire où j'ai failli. Cordialement...
    Voici mon code:

    fichier index.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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    	<head >
    		<title>AutoCompletion</title>
    		<script type="text/javascript" src="jquery/jquery-1.9.1.min.js"></script>
    		<script type="text/javascript" src="jquery/jquery-ui.js"></script>
     
    		<script type="text/javascript">
    			var cache = {};
    			$(function ()
    			{
    				$("#cp, #ville").autocomplete({
    					source: function (request, response)
    					{
    						//Si la réponse est dans le cache
    						if (('FR' + '-' + request.term) in cache)
    						{
    							response($.map(cache['FR' + '-' + request.term], function (item)
    							{
     
    								return {
    									label: item.CodePostal + ", " + item.Ville,
    									value: function ()
    									{
    										if ($(this).attr('id') == 'cp')
    										{
    											$('#ville').val(item.Ville);
    											return item.CodePostal;
    										}
    										else
    										{
    											$('#cp').val(item.CodePostal);
    											return item.Ville;
    										}
    									}
    								}
    							}));
    						}
    						//Sinon -> Requete Ajax
    						else
    						{
    							var objData = {};
    							if ($(this.element).attr('id') == 'cp')
    							{
    								objData = { codePostal: request.term, pays: 'FR', maxRows: 10 };
    							}
    							else
    							{
    								objData = { ville: request.term, pays: 'FR', maxRows: 10 };
    							}
    							$.ajax({
    								url: "AutoCompletion.php",
    								dataType: "json",
    								data: objData,
    								type: 'POST',
    								success: function (data)
    								{
    									//Ajout de reponse dans le cache
    									cache[('FR' + '-' + request.term)] = data;
    									response($.map(data, function (item)
    									{
     
    										return {
    											label: item.CodePostal + ", " + item.Ville,
    											value: function ()
    											{
    												if ($(this).attr('id') == 'cp')
    												{
    													$('#ville').val(item.Ville);
    													return item.CodePostal;
    												}
    												else
    												{
    													$('#cp').val(item.CodePostal);
    													return item.Ville;
    												}
    											}
    										}
    									}));
    								}
    							});
    						}
    					},
    					minLength: 3,
    					delay: 600
    				});
    			});
    		</script>
    		<link rel="Stylesheet" type="text/css" href="jquery-ui.css" />
    	</head>
    	<body>
    		<form action="#">
    			CP :<input type="text" id="cp" size="6"/>
    			Ville : <input type="text" id="ville" />
    		</form>
    	</body>
    </html>[/COLOR]
     
     
     
    fichier AutoCompletionCPVille.class.php
    [COLOR="#FF0000"]
    <?php
    class AutoCompletionCPVille {
            public $CodePostal;
            public $Ville;
    }
    ?>

    fichier AutoCompletion.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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    <?php
    require_once('AutoCompletionCPVille.class.php');
     
    //Initialisation de la liste
    $list = array();
     
    //Connexion MySQL
    try
    {
        $db = new PDO('mysql:host=localhost;dbname=autocompletion', 'root', '');
    }
    catch (Exception $ex)
    {
        echo $ex->getMessage();
    }
     
    //Construction de la requete
    $strQuery = "SELECT CP CodePostal, VILLE Ville FROM autocomplete WHERE ";
    if (isset($_POST["codePostal"]))
    {
        $strQuery .= "CP LIKE :codePostal ";
    }
    else
    {
        $strQuery .= "VILLE LIKE :ville ";
    }
    $strQuery .= "AND CODEPAYS = 'FR' ";
    //Limite
    if (isset($_POST["maxRows"]))
    {
        $strQuery .= "LIMIT 0, :maxRows";
    }
    $query = $db->prepare($strQuery);
    if (isset($_POST["codePostal"]))
    {
        $value = $_POST["codePostal"]."%";
        $query->bindParam(":codePostal", $value, PDO::PARAM_STR);
    }
    else
    {
        $value = $_POST["ville"]."%";
        $query->bindParam(":ville", $value, PDO::PARAM_STR);
    }
    //Limite
    if (isset($_POST["maxRows"]))
    {
        $valueRows = intval($_POST["maxRows"]);
        $query->bindParam(":maxRows", $valueRows, PDO::PARAM_INT);
    }
     
    $query->execute();
     
    $list = $query->fetchAll(PDO::FETCH_CLASS, "AutoCompletionCPVille");;
     
    echo json_encode($list);
    ?>
    Merci d'avance pour vos réponses

  2. #2
    Nouveau Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mai 2016
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2016
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Abréviation interdite
    Salut,

    Commence par ajouter un alert(data); à la ligne 57. De cette façon, tu verras si tu reçois quelque chose ou pas.

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo