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] Récupérer l'id d'un texte autocomplété (avec scriptaculous)


Sujet :

AJAX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 14
    Par défaut [AJAX] Récupérer l'id d'un texte autocomplété (avec scriptaculous)
    Hello,

    Mon problème a déjà du être traité mais je suis un peu nouveau sur le forum et je n'arrive pas à faire une recherche uniquement sur un forum (dans la recherche avancée, il y a à peu près 300 forums et je ne trouve pas le forum Ajax )

    Voilà :
    J'ai une zone de texte sur laquelle j'ai monté une autocomplétion avec scriptaculous (j'ai entendu parlé de JQuery mais je ne vois pas bien les avantages et les inconvénients de ces 2 techniques). Tout marche bien si ce n'est que quand on sélectionne un item dans la liste des propositions de l'autocomlpétion, c'est le libellé de l'item qu'on récupère et non son ID. Or c'est bien l'id que je souhaiterai récupérer car j'ai un risque de doublons sur le libellé...

    J'ai trouvé un tuto (qui m'a permi de faire mon autocomplétion "simple") mais je ne comprends pas la partie "récupération de l'id"). C'est la fonction "ac_return" (voir partie 7 du tuto) qui est censé effectuer cette récupération mais je ne comprends rien à ce que fait cette fonction :
    - pourquoi une expression régulière? (n'est-il pas plus simple de récupérer la sous-chaîne entre le début du div et la chaîne "idcache")
    - pourquoi lors de l'appel de la fonction ac_return (voir partie 4 du tuto) il n'y a pas de valeur passée en paramètre alors que la fonction est censée en attendre 2 ?

    Pouvez-vous m'éclairer de vos lumières ?

    Si vous n'avez pas envie de vous prendre la tête avec ce tuto, je suis preneur d'un autre tuto bien évidemment

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 14
    Par défaut
    En fait on peut peut-être se débrouiller sans le tuto... Voici le formulaire :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <form action='traitement.php' method="post">
    <input type="text" size="30" name="saisieRue" id="saisieRue" />
    <div id="saisieRue_update"></div>
    <input type='submit' name='valid' value='Ok'/>
    </form>
    L'appel de la fonction autocompleter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <script type='text/javascript'>
    new Ajax.Autocompleter (
    'saisieRue', 
    'saisieRue_update',
    'autoCompRue.php',
    {method: 'post', 
    paramName: 'saisieRue', 
    parameters: 'ville=2'});
    </script>
    et le code php qui remplit le div avec les proposition de l'autocomplétion :
    Code php : 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
    $req = "SELECT codeRV, nomRV 
    	FROM secto_rueville 
    	WHERE villeRV = '".$_POST['ville']."'
    	AND nomRV LIKE '%".$_POST['saisieRue']."%'
    	ORDER BY nomRV";
    $res=mysql_query($req) or die("query");
    if ($_POST['saisieRue'] != "") {
      echo '<ul>';
      for ($i=0; $i<mysql_num_rows($res); $i++){
        echo '<li>
          <a href="#" onclick="return false">
            <span class="informal" style="display:none">'.mysql_result($res,$i,0).' - </span>'
            .htmlentities(mysql_result($res,$i,1)).'
          </a>
        </li>';
        if ($i >= 10) die('<li>...</li></ul>');
      }
      echo '</ul>';
    }
    Le span me permet de faire figurer l'id au côté de la porposition qui lui correspond mais sans qu'il apparaisse dans la liste des proposition. Maintenant j'aimerais bien le récupérer pour le passer lors de la validation du formulaire mais je ne sais pas comment faire

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 14
    Par défaut
    Bon bah j'ai résolu moi-même mon pb. Il suffit de mettre une fonction à exécuter en retour :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    new Ajax.Autocompleter ('saisieRue', 
    'saisieRue_update',
    'autoCompRue.php',
    {method: 'post', 
    paramName: 'saisieRue', 
    parameters: 'ville=2',
    afterUpdateElement: getSelectionId});
    , un champ caché dans le formulaire :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="hidden" name="rue_id" value=""/>
    et de remplir ce champ caché avec la fonction en retour :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function getSelectionId(text, li) {
    document.forms[0].rue_id.value = li.id;
    }

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 05/05/2017, 21h45
  2. Réponses: 3
    Dernier message: 26/10/2009, 13h32
  3. [AJAX] Récupérer le contenu d'un champ texte (débutant)
    Par Sytchev3 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 12/11/2007, 18h58
  4. récupérer partie d'un fichier texte
    Par vincent02 dans le forum C
    Réponses: 5
    Dernier message: 20/05/2006, 08h21
  5. [AJAX] Récupérer paramètre sur POST dans une servlet
    Par _beber85 dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 05/04/2006, 11h52

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