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

JavaScript Discussion :

[AJAX] Autocompletion + base de données


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Inscrit en
    Juin 2008
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 6
    Points : 7
    Points
    7
    Par défaut [AJAX] Autocompletion + base de données
    Salut,

    J'ai voulu mettre une autocompletion sur des formulaires de mon site, j'ai suivi le tutoriel mis sur cette page, il marche très bien, j'ai remplacé le code du fichier options.php par

    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
     
    <?php
    header('Content-Type: text/xml;charset=utf-8');
    echo(utf8_encode("<?xml version='1.0' encoding='UTF-8' ?><options>"));
     
    mysql_connect('localhost','root','');
    $base=mysql_select_db('ma_base');
    mysql_query("SET NAMES 'utf8'");
    $query = "SELECT nom FROM ma_table";
    $result = mysql_query($query);
     
    $queue = array();
     
    while($tab= mysql_fetch_array($result,MYSQL_NUM)) array_unshift($queue, strtolower($tab[0]));
     
    if (isset($_GET['debut'])) 
    {
    $debut = utf8_decode($_GET['debut']);
    } else {
        $debut = "";
    }
    $debut = strtolower($debut);
     
    function generateOptions($debut,$queue) 
    {
        $MAX_RETURN = 10;
        $i = 0;
        foreach ($queue as $element) {
            if ($i<$MAX_RETURN && substr($element, 0, strlen($debut))==$debut) {
                echo(utf8_encode("<option>".$element."</option>"));
                $i++;
            }
        }
    }
     
    generateOptions($debut,$queue);
    echo("</options>");
    ?>
    ça marche bien aussi, sauf que ce n'est pas du tout pratique si j'ai une base de donnée volumineuse avec un millier d'enregistrement ! le temps de réponse est énorme ! Devrais je changer quelque chose sur le script afin de l'optimiser ou vaux mieux chercher un autre script d'autocompletion ?


    - Quelqu'un a déjà fait une autocompletion en utilisant mootools (avec PHP 4) ?
    j'essaie de faire tourner ce script, mais j'y arrive pas

  2. #2
    Membre expérimenté Avatar de DoubleU
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 106
    Points : 1 388
    Points
    1 388
    Par défaut
    Quelque soit le script que tu vas prendre, le principe restera le même, donc tu n'auras guère de meilleurs perfs.

    Si ta requete retourne trop de lignes pour ton autocomplétion, essaie simplement de limiter le nombre de résultats retournés en SQL, et pas en php.

  3. #3
    Futur Membre du Club
    Inscrit en
    Juin 2008
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 6
    Points : 7
    Points
    7
    Par défaut
    Ok merci j'essaierai de trouver une meilleure solution alors.

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

Discussions similaires

  1. [AJAX] AJAX et bases de données
    Par tapoutapou dans le forum AJAX
    Réponses: 1
    Dernier message: 15/07/2010, 16h53
  2. [AJAX] [Ajax et Bases de données] Y a t il des exemples?
    Par Sayrus dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 25/05/2007, 08h33
  3. [AJAX] Ajax et base de données
    Par Sayrus dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 14/05/2007, 16h35
  4. Réponses: 1
    Dernier message: 20/03/2007, 09h24
  5. [AJAX] base de donnée Ajax
    Par kawther dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 27/02/2007, 16h52

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