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 :

datalist récupération des informations cliquées pour envoyer sur un input


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    octobre 2022
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Analyste d'exploitation

    Informations forums :
    Inscription : octobre 2022
    Messages : 17
    Points : 5
    Points
    5
    Par défaut datalist récupération des informations cliquées pour envoyer sur un input
    Bonjour,
    Je souhaite faire un "datalist", avec un javascript qui va récupérer l'information sélectionné dans la "datalist", puis va l'envoyer dans l'input "caseinfo"
    Je ne veux pas que l'information transite par l'input "browser" pour l'envoyer sur "caseinfo"
    Si je met un "onchange" sur l'input browser, si la personne a décidé d'être prise de tête, elle pourra envoyer une autre info que ce qui est dans "datalist" dans "caseinfo".

    un simple select n'est pas possible, dans "datalist" il y a 30 000infos, l'utilisateur va devoir chercher un heure la bonne info.
    J'ai testé pas mal de truc, mais je n'arrive pas à comprendre pourquoi cela ne fonctionne pas.

    Un des exemples de test, celui qui me semblait le plus logique.
    donc si je commence a écrire "F" cela me permet de cliquer sur "Firefox", je veux que l'information aille dans "caseinfo"
    Je ne veux pas que, si la personne marque "bidulemachin", l'information aille dans "caseinfo"


    Merci d'avance pour l'aide éventuel.

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <input list="browsers" name="browser" id="browser">
     
    <datalist id="browsers"  onchange="envoinfo()">
      <option value="Edge">
      <option value="Firefox">
      <option value="Chrome">
      <option value="Opera">
      <option value="Safari">
    </datalist>
     
     
    <input type="text"   id="caseinfo">



    javascript
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function envoinfo() 
    {
     
    var val=document.getElementById("browsers").options[document.getElementById("browsers").selectedIndex].value;
    document.getElementById("caseinfo").value=val;
     
    }

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    janvier 2011
    Messages
    16 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : janvier 2011
    Messages : 16 468
    Points : 42 489
    Points
    42 489
    Par défaut
    Bonjour,
    il te faut récupérer la value de l'élément <input list="browsers" name="browser" id="browser"> et faire les vérifications à partir de celle-ci.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    octobre 2022
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Analyste d'exploitation

    Informations forums :
    Inscription : octobre 2022
    Messages : 17
    Points : 5
    Points
    5
    Par défaut
    Pour la vérifier, il faudrait que j'envoi la liste du datalist sur le javascript.
    C'est possible de récupérer l'information?

    Envoyer le tableau de 30 000données sur javascript, pour vérifier que l'information envoyé est bien dans le tableau, cela me semble très lourd.
    Comparé a envoyer directement l'information cliqué la ou on veut.

    Il n'y a vraiment pas d'autre solution, ou c'est juste une idée?

  4. #4
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    janvier 2011
    Messages
    16 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : janvier 2011
    Messages : 16 468
    Points : 42 489
    Points
    42 489
    Par défaut
    Pour la vérifier, il faudrait que j'envoi la liste du datalist sur le javascript.
    C'est possible de récupérer l'information?
    Il faut savoir que :
    • L'événement onchange sur un élément <datalist> n'est pas pris en compte
    • On ne peut pas récupérer la valeur d'un élément <datalist>


    Cependant, récupérer et vérifier que l'information saisie est contenue dans les datas de la <datalist> est tout à fait faisable.

    En repartant de ton code HTML :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <input list="browsers" name="browser" id="browser">
    <datalist id="browsers">
      <option value="Edge">
      <option value="Firefox">
      <option value="Chrome">
      <option value="Opera">
      <option value="Safari">
    </datalist>
    <input type="text"   id="caseinfo">
    on pourrait faire avec ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function existInDatalist(idDatalist, value) {
      const elemDataList = document.getElementById(idDatalist);
      return elemDataList.querySelector("option[value='" + value + "']");
    }
     
    const oInput = document.getElementById("browser");
    oInput.addEventListener("input", function() {
      const exist = existInDatalist(this.getAttribute("list"), this.value);
      document.getElementById("caseinfo").value = exist ? this.value : "...";
    })


    Envoyer le tableau de 30 000données sur javascript, pour vérifier que l'information envoyé est bien dans le tableau, cela me semble très lourd.
    Comparé a envoyer directement l'information cliqué la ou on veut.
    Effectivement il faudrait tester en terme d'efficacité, le préchargement des 30000 données n'étant pas forcément judicieux.

    Une autre approche serait de revoir la hiérarchisation des données si c'est possible.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    octobre 2022
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Analyste d'exploitation

    Informations forums :
    Inscription : octobre 2022
    Messages : 17
    Points : 5
    Points
    5
    Par défaut
    Ok merci pour l'information.
    La hiérarchisation des données n'est pas possible, elle rajouterai une étape qui n'est pas pratique.
    Sur le principe j'ai d'autre solution, mais elles ont toute leur défaut, "datalist" était clairement le plus simple, c'est une alternative au "select" qui ne supporte pas les 30K.
    L'objectif était de bloquer l'utilisateur con, sans embêter l'utilisateur normal.


    Même si 95% des utilisateurs font ce qu'il faut, certain cherchent toujours a gruger le système.
    A chaque fois c'est simple de voir l'arnaque, mais cela implique du temps de perdu inutilement, avec des conversations lunaire à n'en pas finir.


    La je vais partir, ou sur de l'ajax, ou sur une étape de vérification.

  6. #6
    Expert confirmé
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    juin 2006
    Messages
    2 343
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : juin 2006
    Messages : 2 343
    Points : 4 335
    Points
    4 335
    Par défaut
    je pense qu'a ce stade (30k infos) il est preferable de les garder en variable, et je faire une autocompletion
    La forme des pyramides prouve que l'Homme a toujours tendance a en faire de moins en moins.

    Venez discuter sur le Chat de Développez !

Discussions similaires

  1. Réponses: 4
    Dernier message: 14/10/2013, 15h34
  2. Récupération des informations sur la batterie
    Par bza88 dans le forum Android
    Réponses: 2
    Dernier message: 16/08/2013, 14h05
  3. Réponses: 19
    Dernier message: 21/03/2012, 16h17
  4. Récupération des informations envoyées avec POST
    Par d.florian dans le forum Langage
    Réponses: 2
    Dernier message: 17/01/2009, 21h59

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