Bouton "J'ai compris" sans recharger la page

Résolu/Fermé
Southstyle Messages postés 46 Date d'inscription mardi 17 avril 2012 Statut Membre Dernière intervention 26 mars 2021 - 19 août 2018 à 08:57
Southstyle Messages postés 46 Date d'inscription mardi 17 avril 2012 Statut Membre Dernière intervention 26 mars 2021 - 20 août 2018 à 18:22
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
A voir également:

1 réponse

jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
19 août 2018 à 10:36
Bonjour
En utilisant l'ajax (avec jquery) sinon, si tu préfères le "pure" js, le xmlhttprequest


2
Southstyle Messages postés 46 Date d'inscription mardi 17 avril 2012 Statut Membre Dernière intervention 26 mars 2021
Modifié le 19 août 2018 à 14:40
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
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
19 août 2018 à 15:58
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
Southstyle Messages postés 46 Date d'inscription mardi 17 avril 2012 Statut Membre Dernière intervention 26 mars 2021
20 août 2018 à 17:03
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
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650 > Southstyle Messages postés 46 Date d'inscription mardi 17 avril 2012 Statut Membre Dernière intervention 26 mars 2021
20 août 2018 à 17:52
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
Southstyle Messages postés 46 Date d'inscription mardi 17 avril 2012 Statut Membre Dernière intervention 26 mars 2021
20 août 2018 à 18:22
Super, merci !
0