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

Réseau/Web Python Discussion :

Flask : recuperer id d'une ligne d'un tableau HTML


Sujet :

Réseau/Web Python

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    Juin 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Juin 2012
    Messages : 9
    Points : 7
    Points
    7
    Par défaut Flask : recuperer id d'une ligne d'un tableau HTML
    Bonjour,

    Je rempli un tableau html par une boucle en python (Flask) à partir d'une base de donnée (sqlite).

    Ce que je souhaite faire, c'est pouvoir modifier les données d'une ligne avec l'évènement dblclick.

    Pour cela il faut que je récupère l'id de la ligne dans laquelle je doubleclic.

    Mes lignes ont chacune un entête unique avec l'attribut "scope" et mon tableau un nom défini par "caption"

    Actuellement le dblclic ouvre le formulaire de modification vide.( en attente des valeurs récupérées)

    Mais ce que je ne sais pas ( je débute, vous l'aurez compris ), c'est comment capter la valeur de la cellule et l' entête de la ligne ?
    En espérant avoir été clair dans mes explications.

    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
     <!-- Creation tableau -->
                <table class="table table-hover table-striped ">
                <caption>Mon Tableau</caption>
                    <thead>
                        <tr>
                          <th scope="col">Id</th>
                          <th scope="col">Service</th>
                          <th scope="col">Objet</th>
                          <th scope="col">Consigne</th>
                          <th scope="col">Action</th>
                          <th scope="col">S-Off</th>
                          <th scope="col">Date</th>
                        </tr>
                    </thead>
                    <tbody>
                      {% for cons in consignevar %}
                        <tr>
                          <td scope="rowID">{{ cons[8] }}</td>
                          <td ondblclick="pyquer() }}'">{{ cons[0] }}</td>
                          <td ondblclick="pyquer()}}'">{{ cons[1] }}</td>
                          <td ondblclick="location.href='{{url_for('add_success') }}'">{{ cons[2] }}</td>
                          <td ondblclick="location.href='{{url_for('add_success') }}'">{{ cons[3] }}</td>
                          <td ondblclick="location.href='{{url_for('add_success') }}'">{{ cons[4] }}</td>
                          <td ondblclick="location.href='{{url_for('add_success') }}'">{{ cons[5] }}</td>
                        </tr>
                      {% endfor %}
     
                    </tbody>
                </table>
    Cordialement

  2. #2
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

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

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 105
    Points : 4 455
    Points
    4 455
    Par défaut
    bonjour

    pas tout compris… car tu as 2 doucle-clic différents.

    Puisque la question est dans python, pourquoi ne pas passer simplement l'id dans la fonction javascript
    <td ondblclick="pyquer({{ cons[8] }})'">{{ cons[0] }}</td>
    Sinon, la question me semble en fait javascript (donc pas ce forum), existe 36 solutions...
    pyquer()
    - Récupérer le parent du clic (le tr)
    - du tr, récupérer le premier td
    - récupérer le contenu du premier td
    $moi= ( !== ) ? : ;

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    Juin 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Juin 2012
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    merci pour la réponse,
    pas tout compris… car tu as 2 doucle-clic différents.
    C'est une erreur de recopie, l'action sera la même : recuperer l'id de la ligne. ce que semble faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "pyquer({{ cons[8] }})"
    c'est bien ca?
    le lien vers une page me servait a vérifier le dblclick

    pyquer()
    - Récupérer le parent du clic (le tr)
    - du tr, récupérer le premier td
    - récupérer le contenu du premier td
    je n'ai pas tout compris mais je vais voir ce que peut faire pyquery.

    Sinon, la question me semble en fait javascript (donc pas ce forum), existe 36 solutions...
    Et si j'ai bien compris, ce que peut faire jquery, pyquery fait la même chose?

  4. #4
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

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

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 105
    Points : 4 455
    Points
    4 455
    Par défaut
    Tu me fais peur

    Ton pyquer() est pour utiliser la bibliothèque python pyquery ?
    Un clic souris est sur le navigateur web, donc flask et python sont complètement étrangers à cela.
    $moi= ( !== ) ? : ;

  5. #5
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    Juin 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Juin 2012
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    Parfois je me fais peur aussi

    Ton pyquer() est pour utiliser la bibliothèque python pyquery ?
    C'est un reste d'un précédent essai. Rien à faire ici

    J'ai réussi à trouver un début de ce que je souhaiterai faire avec un script en java et jquery.
    j'affiche les valeurs de la ligne avec un bouton sur chaque ligne.

    mais je pensais pouvoir le faire avec un équivalent python.

    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    <!-- Creation tableau -->
                <table class="table table-hover table-striped ">
                <caption>Mon Tableau</caption>
                    <tbody>
                        <tr>
                          <th scope="col">Id</th>
                          <th scope="col">Service</th>
                          <th scope="col">Objet</th>
                          <th scope="col">Consigne</th>
                          <th scope="col">Action</th>
                          <th scope="col">S-Off</th>
                          <th scope="col">Date</th>
                        </tr>
     
                      {% for cons in consignevar %}
                        <tr id="{{ cons[8] }}">
                          <td scope="row">{{ cons[8] }}</td>
                          <td class="row-data" >{{ cons[0] }}</td>
                          <td class="row-data" >{{ cons[1] }}</td>
                          <td class="row-data" >{{ cons[2] }}</td>
                          <td class="row-data" >{{ cons[3] }}</td>
                          <td class="row-data" >{{ cons[4] }}</td>
                          <td class="row-data" >{{ cons[5] }}</td>
                          <td><input type="button" value="Afficher" onclick="show()" /></td>
                        </tr>
                      {% endfor %}
     
                    </tbody>
                </table>
            </div>
     
            <script>
                function show() {
                    var rowId = event.target.parentNode.parentNode.id;
     
                  // Donne id de la ligne
                    var data = document.getElementById(rowId).querySelectorAll(".row-data");
     
                 // Renvoie un tableau de tous les éléments avec la classe "row-data" dans la ligne avec identifiant donné 
     
                    var Service = data[0].innerHTML;
                    var Objet = data[1].innerHTML;
     
                // Affiche les valeurs
                    alert("Service: " + Service + "\nObjet: " + Objet);
                }
            </script>
    {% endblock %}

  6. #6
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Citation Envoyé par lillyrose Voir le message
    Et si j'ai bien compris, ce que peut faire jquery, pyquery fait la même chose?
    pyquery peut très bien avoir des fonctionnalités comparables à jquery (côté documents HTML/XML...) mais c'est une bibliothèque Python et Python ne s'exécute pas dans un navigateur Web (comme le ferait du javascript), on ne pourra l'exécuter que côté "serveur" (alors que jquery peut s'exécuter côté client ou côté serveur).

    Vous devez essayez de comprendre les technologies que vous utilisez, sinon vous allez souvent en attendre des fonctionnalités qu'elles n'ont pas.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. Réponses: 2
    Dernier message: 19/01/2016, 19h37
  2. supprimer une ligne d'un tableau html par double click
    Par s.rais dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 06/10/2013, 11h30
  3. Ajouter une ligne dans un tableau HTML
    Par grialat dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 06/04/2013, 16h11
  4. selection d'une ligne d'un tableau HTML
    Par Lutin1801 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 10/05/2012, 10h04
  5. Réponses: 1
    Dernier message: 18/12/2009, 20h43

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