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 :

UI Autocomplete. Lorsque j'essaye d'appeler un script PHP, je n'obtiens rien


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 42
    Par défaut UI Autocomplete. Lorsque j'essaye d'appeler un script PHP, je n'obtiens rien
    J'essaye d'implémenter l'autocomplete de Jquery ui.
    Ca marche en local (en déclarant une variable locale comme source) quand j'essaye d'appeler un script php je n'obtiens rien
    Mon source:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $(function() {
     
    		$("#birds").autocomplete({
    			source: "search.php"
    		});
    	});
     
    })
    Dans le server side search.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
    <?php
     
    $q = strtolower($_GET["q"]);
    if (!$q) return;
    $items = array(
    "PHP"=>"PHP",
    "A1"=>"A1"
     
    );
     
    foreach ($items as $key=>$value) {
            if (strpos(strtolower($key), $q) !== false) {
                    echo "$key|$value\n";
            }
    }
     
    ?>
    Quelq'un aurait il une idée de ce qu'il faut mettre dans le script PHp
    search.php.
    A terme je souhaite initialiser la table items avec une requète mysql.

  2. #2
    Rédacteur
    Avatar de Arnaud F.
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Août 2005
    Messages
    5 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Finance

    Informations forums :
    Inscription : Août 2005
    Messages : 5 183
    Par défaut
    Bonjour,

    je dirais que ça provient de ceci :
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $q = strtolower($_GET["q"]);
    if (!$q) return;

    En effet, lors de l'appel à votre Autocompleter vous ne passez aucune variable via $_GET, d'ou il en résulte que (!$q) == true, donc return et on ne continue pas le traitement ...
    C'est par l'adresse que vaut le bûcheron, bien plus que par la force. Homère

    Installation de Code::Blocks sous Debian à partir de Nightly Builds

  3. #3
    Membre averti
    Homme Profil pro
    Ingénieur développement de composants
    Inscrit en
    Novembre 2007
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meuse (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur développement de composants
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 34
    Par défaut
    Citation Envoyé par djanke Voir le message
    Dans le server side search.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
    <?php
    $q = strtolower($_GET["q"]);
    if (!$q) return;
    $items = array(
    "PHP"=>"PHP",
    "A1"=>"A1"
    );
    foreach ($items as $key=>$value) {
            if (strpos(strtolower($key), $q) !== false) {
                    echo "$key|$value\n";
            }
    }
     
    ?>
    Bonjour,
    effectivement, tu ne risque pas de récupérer quoi que ce soit. En plus, selon la version de JQuery UI et Autocomplete que tu utilises, il faut dans tous les cas transformer en JSon à la fin.

    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
     
    extract($_GET); // je simplifie
    $query = isset($term) ? trim($term) : "";
    $data = array(); // la réponse se fera dans ce tableau
    // ...
    // à compléter avec tes valeurs
    // ...
    if ($term != "") {
      while (...) { // un peu de suspense, faut bien laisser les autres travailler un peu
    		$data[]['value'] = utf8_encode($term);
    // ou (attention, c'est l'un ou l'autre, passage de plusieurs valeurs)
    		$data[] = array('value' => utf8_encode($term), 'autre' => $autre);
    		}
    }
    echo json_encode($data);
    On ne doit pas être trop loin de quelque chose qui fonctionne. La clé 'value' doit porter ce nom! Encore une fois, lire la doc...

Discussions similaires

  1. Réponses: 0
    Dernier message: 27/11/2007, 14h37
  2. Réponses: 8
    Dernier message: 08/06/2007, 21h39
  3. Appeler un script PHP toutes les x minutes
    Par Seb33300 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 26/02/2007, 14h41
  4. appel de script php a distante avec envoie de variable
    Par xtaze dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 12/05/2006, 15h53
  5. Réponses: 6
    Dernier message: 23/05/2005, 08h33

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