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

Langage PHP Discussion :

Boutons sur tableau de taille variable


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 151
    Par défaut Boutons sur tableau de taille variable
    Bonjour,

    J'affiche mes données (en provenance de la base de données) dans un tableau. Le nombre de ligne de ce tableau est variables et dépend du nombre de résultat présents dans la base de données.
    Je souhaiterai que dans une colonne supplémentaire tout a droite je dispose de 2 boutons par ligne, un pour modifier la ligne, l'autre pour la supprimer complètement.
    Le problème étant comment savoir sur quel ligne j'ai cliqué et envoyer cette info sur l'autre page ?

    Si c'est pas clair n’hésitez pas à me poser des questions.

  2. #2
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 715
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 715
    Par défaut
    dans le code html tu peux mettre un nom comme name="buttonEdit[23]".
    ensuite affiche le contenu de $_POST et tu verras comment récupérer l'identifiant de bouton cliqué.

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 151
    Par défaut
    Comment faire pour "afficher le contenu de $_POST" ? J'ai essayé diverses choses mais j'ai rien...

    Après je me disais que ça pouvait peut-être valoir le coup de mettre un id a chaque bouton en utilisant l'index de la boucle, mais après je vois pas comment le récupérer dans ma nouvelle fenêtre...
    ( https://www.w3schools.com/html/html_id.asp )

    Je regarde aussi du cote des fonctions en javascript, mais j'en ai jamais fait... Et j'ai entendu dire que c’était assez variable d'un navigateur à l'autre, voir même pas supporter par certain... Qu'en est-il vraiment ?
    ( https://www.w3schools.com/html/tryit...ript_attribute )

  4. #4
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 499
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    quand mathieu parle de la variable $_POST, il doit supposer qu'on est dans un formulaire html avec la méthode POST.
    Ce n'est pas le cas, mais c'est ce que je ferais...

    Pour qui y ait pas besoin de bouton submit :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <form method="post" action="traitement.php">
        <select name="tab" onChange="this.parentNode.submit()">
    ...

    Faut pas mettre du javascript. Dans traitement.php, tu mets l'action de modif si $_POST['buttonEdit'] existe et tu mets l'action de delete si $_POST['buttonDelete'] existe.

  5. #5
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 715
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 715
    Par défaut
    Citation Envoyé par laurentSc Voir le message
    Pour qui y ait pas besoin de bouton submit
    de base il vaut mieux éviter de lancer un formulaire de cette façon parce que ça empêcherai d'envoyer le formulaire si on utilise un lecteur d'écran.
    après BartRoX n'a pas indiqué quels seront les utilisateurs donc si ce n'est pas à destination du grand public, il pourra simplifier sa page.

  6. #6
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 499
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par mathieu Voir le message
    parce que ça empêcherait d'envoyer le formulaire si on utilise un lecteur d'écran.
    Merci pour la remarque. Néanmoins, même s'il faut un bouton submit, je pense que c'est quand même mieux de faire avec un formulaire...Je suppose que vous aussi, mathieu, car quand vous parliez (au post #2) de la variable $_POST, celle-ci n'existe que dans le cas d'un formulaire avec la méthode POST...

  7. #7
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 151
    Par défaut
    Vous m'avez perdu...

    Citation Envoyé par mathieu Voir le message
    de base il vaut mieux éviter de lancer un formulaire de cette façon parce que ça empêcherai d'envoyer le formulaire si on utilise un lecteur d'écran.
    Je serai curieux de savoir ce que vous appelez "un lecteur d'écran" ?

    En soit, suite à des recherches et à ma réflexion pour adapter à mon problème, j'ai trouvé un moyen de détecter sur quelle ligne le bouton a été cliqué en changeant le nom ("name") de celui-ci via mon index de boucle et en utilisant un formulaire avec la méthode POST et le type "submit" (et non "button").
    Je peux donc récupérer et tester quel bouton est cliqué, par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    if(isset($_POST['buttonEditUser1']))
    { 
       echo "POST: ".$_POST['buttonEditUser1'];
    } 
    ?>
    J'en déduis ici que le bouton 1 (Donc 2eme ligne) a été cliqué.
    (La ligne echo sert juste de debug, et m'affiche le contenu de "value" du bouton)

    Le problème maintenant c'est que je ne vois toujours pas comment faire pour envoyer l'info du bouton cliqué à mon autre page...?
    Je dispose d'une session, mais je ne trouve pas ça propre du tout de rentrer ces valeurs dans la session, il doit surement il y avoir un autre moyen ?

  8. #8
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 499
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par BartRoX Voir le message
    Je serai curieux de savoir ce que vous appelez "un lecteur d'écran" ?
    Les lecteurs d'écran sont des logiciels utilisés par les non ou malvoyants. Par exemple : https://www.ceciaa.com/jaws.

    Citation Envoyé par BartRoX Voir le message
    Je peux donc récupérer et tester quel bouton est cliqué, par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    if(isset($_POST['buttonEditUser1']))
    { 
       echo "POST: ".$_POST['buttonEditUser1'];
    } 
    ?>
    Remplace le nom buttonEditUser1 par buttonEditUser[1]. L'emploi d'un tableau t'avait été suggéré par mathieu au post #2.

    Citation Envoyé par BartRoX Voir le message
    Le problème maintenant c'est que je ne vois toujours pas comment faire pour envoyer l'info du bouton cliqué à mon autre page...?
    Par l'URL :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?php
      header('Location: autrepage.php?id-modif='.$i); /*on suppose que $i contient l'identifiant de la ligne à modifier, donc on redirige vers autrepage.php en lui passant cette info */
      exit();
    ?>
    autrepage.php
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?php
    //récupération de la ligne à modifier
    $id_to_modif = $_GET['id-modif'];
    //suite du traitement

  9. #9
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 151
    Par défaut
    Oh, je ne connaissais pas pour les lecteurs d'écran, merci pour l'info.

    Je viens justement de trouver comment envoyer l'info par l'url et la possibilité d'utiliser cet info via $_GET.
    C'est le première fois que je me sert de $_GET, mais ça ne m'a pas l'air bien compliqué.
    Je vais voir ça tout de suite.

    Si je n'ai pas de problème particulier je marquerai le sujet résolu.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 10/10/2016, 08h44
  2. [MySQL] tableau a taille variable et bouton
    Par stefano dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 03/12/2012, 21h09
  3. Réponses: 3
    Dernier message: 02/06/2011, 18h28
  4. Réponses: 1
    Dernier message: 14/09/2006, 10h53
  5. [TP] Tableau de taille variable
    Par Ripley dans le forum Turbo Pascal
    Réponses: 4
    Dernier message: 30/01/2006, 15h36

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