Bouton "J'ai compris" sans recharger la page

Résolu
Southstyle Messages postés 46 Statut Membre -  
Southstyle Messages postés 46 Statut Membre -
Bonjour,

Je travaille depuis des années avec PHP/MySQL, et je bidouille JavaScript relativement mal :-)

Cependant il offre plein de possibilités que je commence à adorer.

J'aimerais donc pouvoir programmer un bouton "J'ai compris" qui initierait une $_SESSION (exemple, en TRUE), sans que l'utilisateur ne quitte la page qu'il est en train de consulter. Un peu à l'exemple des avertissement de sites utilisant les cookies.

<?php if($_SESSION['accept'] !== TRUE) { ?>

	<div id="mobilephonewarn">
	<p>Attention, vous consultez un site web avec un écran de taille réduite ou un mobile ; ce site présente de nombreuses photos et informations qui ne sont pas optimisées pour les petits écrans. Favorisez l'usage d'un ordinateur ou d'une tablette. Merci pour votre compréhension.</p>
	<p align="center"><button type="button">J'ai compris</button></p>
	</div>

<?php } ?>


Voilà en gros ce que j'ai pour l'instant, maintenant je ne sais pas quoi faire sur l'action du bouton. Comment passer la session $_SESSION['accept'] en TRUE sans quitter / recharger la page que l'utilisateur consulte.

Merci pour votre précieuse aide !

Raph

1 réponse

  1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
     
    Bonjour
    En utilisant l'ajax (avec jquery) sinon, si tu préfères le "pure" js, le xmlhttprequest

    2
    1. Southstyle Messages postés 46 Statut Membre
       
      Je n'ai pas vraiment de préférence, j'utilise déjà jquery pour d'autres fonctions, donc je pourrais le faire en AJAX volontiers. Mais la question est : comment ? :-)
      0
    2. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
       
      Voici des exemples :
      https://codes-sources.commentcamarche.net/source/102253-exemple-ajax-en-jquery

      En gros...
      ton script JS appel en AJAX un script PHP qui se chargera du traitement voulu (pour toi la création d'une variable de session)

      <button type="button" onclick="jaicompris();">J'ai compris</button>
      


      function jaicompris(){
        $.ajax({
            method: "POST",
            url: "tonscriptphp.php",
            data: { variable1: "truc", variable2: "bidule" }
        }) .done(function( response ) {
            // en cas de succes de ton fichier php
             console.log(response);
        }) .fail(function(error) {
              //en cas de problème lors de l'appel de ton script php
              console.log(error);
        });
      }
      


      tonscriptphp.php
       <?php
         session_start();
         $_SESSION['compris'] = true:
         echo 'variable de session créée';
      
      0
    3. Southstyle Messages postés 46 Statut Membre
       
      Salut Jordane,

      Bon alors j'ai adapté ton code pour que tout cela se passe dans le même fichier, en gros "tonscript.php" est devenu
      basename($_SERVER['PHP_SELF'])
      , le session_start() je l'ai déjà par défaut dans un include donc avec de tout petits changements (notamment un ajout :
      onclick="jaicompris(); getElementById('ledivdujaicompris').style.display='none';"
      , je suis parvenu exactement à ce que je voulais, grâce à toi !!

      J'adore AJAX, je devrais m'y mettre davantage. Mais la route est longue et parsemée d'embuches :-)

      Merci pour ton aide !

      Par contre je n'ai pas compris l'histoire de la console.log : les erreurs s'inscrivent dans la console jquery ? Quelquepart ?

      Raph
      0
      1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831 > Southstyle Messages postés 46 Statut Membre
         
        Par contre je n'ai pas compris l'histoire de la console.log : les erreurs s'inscrivent dans la console jquery ? Quelquepart ?

        Dans la console de ton navigateur (lorsque tu affiches les "outils de developpement" ( raccourci F12 ou CTRL+ SHIFT +J selon le navigateur ))
        0
    4. Southstyle Messages postés 46 Statut Membre
       
      Super, merci !
      0