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 :

Autocomplétion + Récupération de la valeur


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2009
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2009
    Messages : 24
    Par défaut Autocomplétion + Récupération de la valeur
    Bonsoir à tous.
    Je viens vous poser une petite question qui m'embête assez bien, puisqu'elle m'empêche de finioler mon site (Simulation de location de DVD).

    J'utilise un bout de code concernant l'autocomplétion, que j'ai récupéré ici : http://www.nodstrum.com/2007/09/19/autocompleter/

    J'ai su l'adapter à ma base de données, mais ce que j'aimerais faire, c'est un lien direct avec une autre page de mon site, avec comme paramètre, l'id du résultat sur lequel l'utilisateur a cliqué.

    Voici mon code, pour que ce soit plus clair pour vous :
    Le javascript :
    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
    <script type="text/javascript">
                function lookup(inputString){
                    if (inputString.length == 0) {
                        // Hide the suggestion box.
                        $('#suggestions').hide();
                    }
                    else {
                        $.post("rpc.php", {
                            queryString: "" + inputString + ""
                        }, function(data){
                            if (data.length > 0) {
                                $('#suggestions').show();
                                $('#autoSuggestionsList').html(data);
                            }
                        });
                    }
                } // lookup
                function fill(thisValue){
                    $('#inputString').val(thisValue);
                    setTimeout("$('#suggestions').hide();", 200); //vitesse à laquelle disparait la fenetre après avoir clique sur le resultat
                }
            </script>
    Le 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
    <div>
                    <form>
                        <div>
                            Type your county:
                            <br/>
                            <input type="text" size="30" value="" id="inputString" onkeyup="lookup(this.value);" onblur="fill();"/>
                        </div>
                        <div class="suggestionsBox" id="suggestions" style="display: none;">
                            <img src="upArrow.png" style="position: relative; top: -12px; left: 30px;" alt="upArrow" />
                            <div class="suggestionList" id="autoSuggestionsList">
                                &nbsp;
                            </div>
                        </div>
                    </form>
                </div>
    Le fichier PHP, auquel les fonctions javascript font appel :
    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
    <?php
            $db = new mysqli('localhost', 'root' ,'mdp', 'DVDStore');
            if(!$db) {
                    echo 'ERROR: Could not connect to the database.';
            } else {
                    if(isset($_POST['queryString'])) {
                            $queryString = $db->real_escape_string($_POST['queryString']);
                            if(strlen($queryString) >0) {
                                    $query = $db->query("SELECT titre FROM film_location WHERE titre LIKE '$queryString%' LIMIT 10");
                                    if($query) {
                                            while ($result = $query ->fetch_object()) {
                                            echo '<li onClick="fill(\''.$result->titre.'\');">'.$result->titre.'</li>';
                                                    $id=$result->id;
                                    }
                                    } else {
                                            echo 'ERROR: There was a problem with the query.';
                                    }
                            } else {
                            } 
                    } else {
                            echo 'There should be no direct access to this script!';
                    }
            }
    ?>
    Auriez-vous une idée de comment récupér l'id du film sélectionné par le client? (désolé, je hais le javascript, et même si j'en utilise, je n'ai pas vu la théorie..)

  2. #2
    Membre Expert
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Par défaut
    Salut,

    Ce que tu as fait me semble pas mal, ce qu'il faudrait à mon avis modifier:
    1. récupérer l'id du film dans ton select (actuellement "SELECT titre FROM film_location...)
    2. injecter l'id dans l'appel de ta fonction fill
    3. changer le code de ta fonction fill pour qu'elle effectue le lien vers ton autre page (window.location.href=... ou autre selon ta librairie javascript utilisée).


    ERE

  3. #3
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2009
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2009
    Messages : 24
    Par défaut
    J'ai finalement trouvé une solution.
    Il me suffisait simplement de récupérer l'id du film de cette manière et de l'intégrer dans un lien..
    Merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    while ($result = $query->fetch_object())
          echo '<div id="contenu_secondaire">
    	<ul id="ul_search">
    	Résultats : 
    	<li>
    		<a href="films_location.php?film_id='.$result->id.'"onClick="fill(\''.$result->titre.'\');"> '.$result->titre.'
                   </a>
    	</li>
    	</ul>
    	</div>';
     
    }

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 03/11/2005, 15h03
  2. récupération d'une valeur dans une variable
    Par jh0483 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 17/08/2005, 09h49
  3. Récupération de la valeur d'une auto-incrémentation
    Par maldufleur dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 07/07/2005, 16h50
  4. Récupération de la valeur d'un champ au nom variable
    Par Oluha dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 10/02/2005, 15h13
  5. Récupération de la valeur visible d'une Liste déroulante
    Par Yaz dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 26/10/2004, 12h01

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