Partage
  • Partager sur Facebook
  • Partager sur Twitter

Execute PHP avec condition

    17 novembre 2017 à 20:38:58

    Bonsoir !

    J'ai un petit souçi....

    J'aimerai que quand je clique sur un input type submit, il execute un code php, jusque là pas de problème.

    Mais j'utilise JavaScript pour faire ceci car je veux empêcher le rechargement de la page.

    Exemple :

    $(function(){
      $("#form1").submit(function(){
        <?php
        $insert = $bdd->prepare('INSERT INTO table(colonne1, colonne2, colonne3) VALUES (?, ?, ?)');
        $insert->execute(array('1', '2', '3'));
        }
        ?>
        var chiffre1 = 5;
        var chiffre2 = 5;
        alert(chiffre1+chiffre2);
        return false;
            });
        })
    Mais la requete sql, s'execute directement (au chargement de la page) et non au click du submit.
    • Partager sur Facebook
    • Partager sur Twitter
      17 novembre 2017 à 21:02:08

      Salut,

      Il faut utiliser AJAX pour ça. Quand ta page aura fini de charger, ton code PHP aura fini son exécution donc il ne faut pas croire que c'est au clic que ton code PHP le sera.

      • Partager sur Facebook
      • Partager sur Twitter
      le bienfait n'est jamais perdu
        17 novembre 2017 à 21:05:49

        Ce qu'il faut c'est que la requête s'exécute que au click.

        On fait ça en Ajax ??

        • Partager sur Facebook
        • Partager sur Twitter
          17 novembre 2017 à 21:08:08

          J'avais compris.. Utilise AJAX.
          • Partager sur Facebook
          • Partager sur Twitter
          le bienfait n'est jamais perdu
            17 novembre 2017 à 21:18:15

            ça dépend de ce que tu veux faire de ton script.. Tu as  vu dans le tuto plusieurs méthodes $.get, $().load, $.post donc suivant une situation on utilise l'un.. Imprègne toi du tuto
            • Partager sur Facebook
            • Partager sur Twitter
            le bienfait n'est jamais perdu
              17 novembre 2017 à 22:27:06

              Bon, j'ai testé ceci :

              <html>
              <head>
              	<title>Essai</title>
              	<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
              	<script>
              	  $(function() {
              	    $('#maj1').click(function() {
              	      $('#label1').load('essai2.php', function() {
              	        alert('La première zone a été mise à jour');
              	      });
              	    });
              
              	    $('#maj2').click(function() {
              	      $('#label2').load('essai3.php', function() {
              	        alert('La deuxième zone a été mise à jour');
              	      });
              	    });
              	  });
              </script>
              </head>
              <body style = "height: 5000px;"><br /><br /><br /><br /><br /><br /><br />
              	<label id = "label1">Button : </label><br /><input id = "maj1" type = "submit" name = "hw" value = "Mettre en bleu !">
              </body>

              Mais dans cette exemple, je clique sur un button pour modifier un texte.

              J'aimerai que quand je clique sur le button, il se modifie.

              • Partager sur Facebook
              • Partager sur Twitter
                17 novembre 2017 à 22:49:32

                Qu'est-ce que tu veux faire ? Tu sais au moins ce que fait .load ?
                • Partager sur Facebook
                • Partager sur Twitter
                le bienfait n'est jamais perdu
                  17 novembre 2017 à 23:18:34

                  oui oui, le code fonctionne avec un label mais pas avec le propre button
                  • Partager sur Facebook
                  • Partager sur Twitter
                    18 novembre 2017 à 0:30:45

                    Je demande encore que veux tu faire exactement ?
                    • Partager sur Facebook
                    • Partager sur Twitter
                    le bienfait n'est jamais perdu
                      18 novembre 2017 à 8:14:14

                      J'ai un button :

                      <input id = "maj1" type = "submit" value = "Mettre en bleu !">


                      Et que quand je CLIQUE dessus :

                      1 - Il execute une requete sql (sans rechargement la page)

                      2 - Il change (ex : il met son texte en bleu donc color: blue;)

                      --- SANS PARLER DE LA REQUÊTE SQL ---

                      Quand je clique sur le button, le label au dessus est en bleu, normal.

                      code :

                      <!DOCTYPE html>
                      <html>
                      <head>
                      	<title>Essai</title>
                      	<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
                      	<script>
                      	  $(function() {
                      	    $('#maj1').click(function() {
                      	      $('#label1').load('essai2.php', function() {
                      	        alert('La première zone a été mise à jour');
                      	      });
                      	    });
                      	  });
                      </script>
                      </head>
                      <body style = "height: 5000px;">
                      	<br /><br /><br /><br /><br /><br /><br />
                      	<label style = "position: fixed;" id = "label1">Button : </label>
                      	<br />
                      	<input style = "position: fixed;" id = "maj1" type = "submit" name = "hw" value = "Mettre en bleu !">
                      </body>
                      </html>

                      Si au click je veux changer la color du button, je met #maj1 dans la ligne du load. Mais là, ça ne fonctionne plus.

                      Code :

                      <!DOCTYPE html>
                      <html>
                      <head>
                      	<title>Essai</title>
                      	<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
                      	<script>
                      	  $(function() {
                      	    $('#maj1').click(function() {
                      	      $('#maj1').load('essai2.php', function() {
                      	        alert('La première zone a été mise à jour');
                      	      });
                      	    });
                      	  });
                      </script>
                      </head>
                      <body style = "height: 5000px;">
                      	<br /><br /><br /><br /><br /><br /><br />
                      	<label style = "position: fixed;" id = "label1">Button : </label>
                      	<br />
                      	<input style = "position: fixed;" id = "maj1" type = "submit" name = "hw" value = "Mettre en bleu !">
                      </body>
                      </html>


                      Je ne suis pas sûr que la fonction load, est bien celle qu'il me faudrai.

                      -
                      Edité par FlorianJACQUIER 18 novembre 2017 à 8:56:53

                      • Partager sur Facebook
                      • Partager sur Twitter
                        18 novembre 2017 à 20:33:56

                        Je t'ai demandé si tu savais à quoi servait .load, tu m'as dit oui or tu ne sembles pas savoir ce que tu fais... Ta structure html est même bizarre et pas correcte ,essaie de la corriger. Explique en des mots simples le résultat que tu souhaites obtenir... Qu'est ce que tes codes font? Clique sur le bouton #maj1 et charge le contenu de essai2.php "dans" #label1" et "#maj1"
                        • Partager sur Facebook
                        • Partager sur Twitter
                        le bienfait n'est jamais perdu

                        Execute PHP avec condition

                        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                        • Editeur
                        • Markdown