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 :

php , PDO , 2 clicks sur un bouton pour valider un UPDATE: pas normal.


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Décembre 2019
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms

    Informations forums :
    Inscription : Décembre 2019
    Messages : 21
    Par défaut php , PDO , 2 clicks sur un bouton pour valider un UPDATE: pas normal.
    bonsoir à tous,

    Je suis confronté à un problème dont j'imagine que la plupart d'entre vous l'a rencontré.

    Sur une page j'ai un certain nombre de bouton de type :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <button type="button" name="p2tieplus" onclick="p2tieplus();" style="width:36px;font-size:80%;>T+</button>

    tous appellent une fonction javascript (ajax) qui elle même fait appel à un script php qui lui-même appelle des SELECT et UPDATE. Jusqu’à présent je n'avais aucun problème avec le fonctionnement de ces boutons. Mais j'en ai ajouté un dernièrement qui nécessite d'être cliqué 2 fois de manière systématique pour lancer
    un UPDATE.

    Fonctionnement:
    Bouton (onclick)->javascript ->php. le script déficient reçoit en $_POST une chaîne de caractères. Le script en question incrémente un compteur très simple
    sous condition puis lance un UPDATE dans la database. Contrairement aux autres scripts que j'utilise et du même calibre, celui-ci necessite de cliquer
    2 fois sur le bouton pour effectuer son UPDATE. Je ne trouve pas de solution et c'est vraiment pénalisant:
    Voici l'extrait du script qui pose problème, avant celui-ci il n'y a que des PREPARE PDO tous testés et qui fonctionnent.
    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
    if (isset($_POST['p1tieplus']))
    {
                                    $victoire = abs($newpoints1t - $newpoints2t) ;
                                   if (($newpoints11 == 6) && ($newpoints21 == 6))
                                    {
                                      if (($newpoints1t >= 7) && ($victoire == 2))
                                    {
                                    $execute11u = $pdostat11u -> execute();      /* Cette requête n'est pas lancée au click unique, il faut cliquer une seconde fois /*
                                                                                                       /* vérifié, l'enregistrement n'est pas dans la base, sauf au 2eme click */
                                    }
                                    else {$newpoints1t +=1 ;}     /* En revanche, ce compteur est bien incrémenté au premier click, la chaine POST arrive bien */
                                    }
     
    }
     
    else if(isset($_POST['p1tiemoins']))
     
    {
    if ($newpoints1t >= 1) {
    $newpoints1t -= 1;
            }
    }
    $pdostat1t = $objectPdo->prepare("UPDATE matches SET p1_tie_score = '$newpoints1t'");
    $executeIsOK1t = $pdostat1t ->execute();
    J'ai testé pas mal de choses sans succès, j'ai rafraîchit les variables avec des SELECT , etc ... rien à faire, il veut 2 CLICKS !
    J'ai également mis la requête SQL UPDATE directement aprés l'isset / $_POST et la elle est bien lancée.

    Je crie à l'aide, parce que là je suis sec.

    Merci pour vos suggestions.

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

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 679
    Par défaut
    pour suivre les appels AJAX, vous pouvez utiliser l'onglet "Réseau" de la console de développement de votre navigateur. cela vous permettra de voir ce qu'il se passe lors du 1er clic.
    par exemple avec Firefox, faites Ctrl + Maj + E
    https://developer.mozilla.org/fr/doc...ur_r%C3%A9seau

  3. #3
    Membre averti
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Décembre 2019
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms

    Informations forums :
    Inscription : Décembre 2019
    Messages : 21
    Par défaut
    bonjour mathieu,

    Merci pour ta réponse. En fait je sais que la fonction ajax est bien lancée et le script php sollicité est également exécuté.
    Ce qui ne fonctionne pas c'est la requete SQL UPDATE :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     if (($newpoints1t >= 7) && ($victoire >= 2))
                                    {
     /* celle ci n'est lancée que 2eme click => */
        $pdostat11u = $objectPdo->prepare("UPDATE matches SET p1_match_score = p1_match_score + 1");
        $execute11u = $pdostat11u -> execute();
    D'ailleurs un compteur dans le script est bien alimenté par la requete au premier click.
    je ne vois pas d'ou cela vient vu que la requete fonctionne et est utilisée dans d'autres scripts sur le même principe: HTML/AJAX -> php ->SQL UPDATE en PDO.

  4. #4
    Membre averti
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Décembre 2019
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms

    Informations forums :
    Inscription : Décembre 2019
    Messages : 21
    Par défaut
    Bonsoir à tous,

    Concernant mon problème de double click il n'est est rien en fait, il s'agit plus d'un illogisme ... !
    Le code ci-dessous demande un UPDATE dans une database alors que la condition précédente incrémente la variable
    après la tentative d'UPDATE. Il faut donc cliquer 2 fois pour UPDATER la database .... logique non ?
    Sauf que je ne sais pas comment le faire ..... commentaires dans le script =>

    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
     
                                     $victoire = abs($newpoints1t - $newpoints2t) ;
     
                                /* ici un test qui va incrementer plus bas un compteur ($newpoints1t) */
                                     if (($newpoints1t >= 10) && ($victoire >= 2))
                                    {
                                /* ici l'UPDATE qui ne fonctionne pas car la variable $newpoints1t est incrémentée dans le else plus bas */
                                    $pdostat11u = $objectPdo->prepare("UPDATE matches SET p1_match_score = p1_match_score + 1");
                                    $execute11u = $pdostat11u -> execute();
     
                                    }
                                /* Voici la variable incrémentée */
                                    else {
                                    $newpoints1t +=1 ;
                                    $pdostat1t = $objectPdo->prepare("UPDATE matches SET p1_tie_score = '$newpoints1t'");
                                    $executeIsOK1t = $pdostat1t ->execute();
                                    }
    Etant un grand débutant, je ne sais pas comment écrire ce programme pour que l'update se réalise du premier coup .....
    Merci pour vos suggestions !

Discussions similaires

  1. Je dois cliquer 2 fois sur le bouton pour valider mon formulaire !
    Par intik dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 11/10/2011, 11h34
  2. click sur un bouton pour commande executée
    Par fred1599 dans le forum Tkinter
    Réponses: 14
    Dernier message: 13/12/2007, 17h24
  3. Réponses: 4
    Dernier message: 23/07/2007, 13h38
  4. Réponses: 2
    Dernier message: 12/03/2007, 14h48
  5. click sur le bouton + de jdbnavtoolbar
    Par hamido dans le forum JBuilder
    Réponses: 4
    Dernier message: 28/05/2004, 00h10

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