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 :

Comment savoir sur quel bouton on a cliqué ?


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de sarah65536
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2006
    Messages
    93
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2006
    Messages : 93
    Par défaut Comment savoir sur quel bouton on a cliqué ?
    Bonjour ,

    J'ai un formulaire dans lequel j'affiche une liste d'éléments. Pour chaque élément, j'ai un bouton, qui va exécuter un code permettant de changer les valeurs de l'élément dans la base de données.

    les boutons sont des input avec une classe, une nom et un id. le nom = l'id et est composé de "btn_"<état de l'élément : lettre a ou lettre d>"_"<id de l'élément".
    Exemples :
    name="btn_a_78"
    name="btn_d_1452"
    ...

    Voila l'appel de ma fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if (empty($_POST)==false)// Si on a deja cliqué sur un des boutons
            {
                  // appelle la fonction qui change d'état
                  $mon_objet->change_etat();
            }
    J'aimerai, dans ma fonction change_etat(),
    Trouver un moyen de savoir sur quel bouton on a cliqué.
    Existe-t'il une fonction donnant les éléments contenus dans $_POST ?
    Ainsi je n'aurai qu'a découper le nom du bouton afin de savoir son etat (a ou d) et l'id de l'élément.

    Merci

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    957
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 957
    Par défaut
    Non il n'existe pas une telle fonction mais ,tu peux acceder a ta variable, en mettant son nom entre crochet $_POST['variable_name'] donc une peti boucle devrait régler ton probleme.

  3. #3
    Membre confirmé Avatar de sarah65536
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2006
    Messages
    93
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2006
    Messages : 93
    Par défaut
    Une petite boucle allant de 0 à 20 000(pour l'instant).... Dans 5 ans, ca fera un peu trop non ? Ça risque d'être trop long
    Enfin je peux quand même essayer pour voir !

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    957
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 957
    Par défaut
    J'ai pas compris la, ta page affiche 20000 lignes ???
    Je crois pas que ton navigateur va supporter.

    Tu pourrais avoir 2 hidden fields via javascript, copier le nom et l'etat de la ligne que tu veux modifier. Tu n'aurais alors qu'a récupérer 2 valeurs dans ton POST.

  5. #5
    Membre confirmé Avatar de sarah65536
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2006
    Messages
    93
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2006
    Messages : 93
    Par défaut
    Et bien pour l'instant ma page affiche au maximum 9 000 ( les 20 000 c'est de l'anticipation) enregistrements. Pour changer l'état, cela prends environ 3 secondes en local. Le temps de trouver le bon bouton, et de ré afficher la liste. j'ai peur que ca devienne 10 secondes lorsque ca sera sur le web.

    Tu pourrais avoir 2 hidden fields via javascript, copier le nom et l'etat de la ligne que tu veux modifier. Tu n'aurais alors qu'a récupérer 2 valeurs dans ton POST.
    Merci pour cette solution, mais je ne dois pas utiliser javascript sur ordre du chef de projet.
    L'idée était bonne, mais pas dans mon cas.

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    957
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 957
    Par défaut
    C'est pas tres propre mais si tu ne peux pas utiliser de javascript tu peux toujours créer autant de formulaires que de ligne, a chaque fois que tu cliques tu ne posteras que les elements de la ligne cliquée.

Discussions similaires

  1. Savoir sur quel bouton on a cliqué
    Par juniordev dans le forum Débuter
    Réponses: 10
    Dernier message: 23/12/2013, 19h58
  2. Savoir sur quel bouton créé dynamiquement l'utilisateur a cliqué
    Par Pierre Fauconnier dans le forum Contribuez
    Réponses: 8
    Dernier message: 05/08/2011, 13h54
  3. savoir sur quel bouton l'utilisateur clique
    Par Mihalis dans le forum Delphi
    Réponses: 4
    Dernier message: 13/06/2007, 22h07
  4. [WinForms]comment savoir sur quel bouton j'ai cliqué?
    Par bossun dans le forum Général Dotnet
    Réponses: 4
    Dernier message: 14/03/2006, 15h18
  5. Formulaire -> pour savoir sur quel bouton on a cliqué.
    Par Thierry8 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 17/09/2005, 19h53

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