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

AJAX Discussion :

[AJAX] Autocompletion et Array


Sujet :

AJAX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Février 2012
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur décisionnel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2012
    Messages : 126
    Par défaut [AJAX] Autocompletion et Array
    Bonjour à tous

    J'ai récemment entrepris d’apprendre l'Ajax pour la création d'un site web (mais je suis débutant dans cet art). Notamment l'utilisation de l'autocomplétion dont j'ai suivi l 'excellent tuto ci dessous :
    http://dcabasson.developpez.com/arti...ion-pas-a-pas/

    J'ai téléchargé l'archive et j'ai donc :
    - options.php (le fichier en question)
    - autocompletion.css
    - autocomplete-3-2.js
    - autocomplete-3-2.html

    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
    <?php
    header('Content-Type: text/xml;charset=utf-8');
    echo(utf8_encode("<?xml version='1.0' encoding='UTF-8' ?><options>"));
    if (isset($_GET['debut'])) {
        $debut = utf8_decode($_GET['debut']);
    } else {
        $debut = "";
    }
    $debut = strtolower($debut);
    
    //Comporte une série de mots que j'ai remplacé par etc
    $liste = array("abeille","abricot", "etc");
    
    function generateOptions($debut,$liste) {
        $MAX_RETURN = 10;
        $i = 0;
        foreach ($liste as $element) {
            if ($i<$MAX_RETURN && substr($element, 0, strlen($debut))==$debut) {
                echo(utf8_encode("<option>".$element."</option>"));
                $i++;
            }
        }
    }
    generateOptions($debut,$liste);
    echo("</options>");
    ?>
    Mon Problème : J'aimerais que la recherche de l'autocomplétion ne se fasse pas sur la suite de mots mais sur les projets que j'ai dans ma DB.

    J'ai tenté ceci mais sans résultat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function ExecSql($Sql)
    {
            //Autre function qui me permet de me connecter à ma DB (fonctionne très bien)
    	$Connexion = Connect();
    	$Resultat = mysql_query ($Sql, $Connexion) or print ("<br /><b>Requete invalide:</b> ".$Sql." <i>[".mysql_error()."]</i>");
    	return $Resultat;
    }
     
    $res = ExecSql("SELECT* FROM projet WHERE Nom='" . $Nom . "'"); 
    $liste =  $res
    Que faire ? Merci d'avance !

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Bonjour,

    Ta fonction ExecSql va retourner une ressource mais pas un tableau. Simplifie d'abord ton code:
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    function generateOptions($debut,$liste) {
        $MAX_RETURN = 10;
        $i = 0;
    	$Connexion = Connect();
    	$res = = mysql_query ("SELECT * FROM projet WHERE Nom='" . $Nom . "'" , $Connexion) or print ("<br /><b>Requete invalide:</b> ".$Sql." <i>[".mysql_error()."]</i>");
    	while ($element = mysql_fetch_array($res) ){
            if ($i<$MAX_RETURN && substr($element, 0, strlen($debut))==$debut) {
                echo(utf8_encode("<option>".$element["nomDuChampDeLaTable"]."</option>"));
                $i++;
            }
        }
    }

    A+.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. ASP et AJAX AutoComplete
    Par PrinceMaster77 dans le forum ASP
    Réponses: 5
    Dernier message: 27/11/2009, 21h56
  2. [AJAX] Autocomplete ajax
    Par jenyfer dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 14/12/2006, 22h06
  3. [AJAX] autocompletion / affichage suggestions
    Par Raideman dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 13/11/2006, 12h36
  4. [AJAX] autocompletion pas a pas
    Par boulika dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 19/10/2006, 11h25
  5. [AJAX] ajax - autocompletion
    Par spectorrr dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/03/2006, 16h08

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