Bouton "J'ai compris" sans recharger la page [Résolu/Fermé]

Signaler
Messages postés
45
Date d'inscription
mardi 17 avril 2012
Statut
Membre
Dernière intervention
8 novembre 2018
-
Messages postés
45
Date d'inscription
mardi 17 avril 2012
Statut
Membre
Dernière intervention
8 novembre 2018
-
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

Messages postés
29738
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 octobre 2020
2 839
Bonjour
En utilisant l'ajax (avec jquery) sinon, si tu préfères le "pure" js, le xmlhttprequest


2
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 60511 internautes nous ont dit merci ce mois-ci

Messages postés
45
Date d'inscription
mardi 17 avril 2012
Statut
Membre
Dernière intervention
8 novembre 2018

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 ? :-)
Messages postés
29738
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 octobre 2020
2 839
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';
Messages postés
45
Date d'inscription
mardi 17 avril 2012
Statut
Membre
Dernière intervention
8 novembre 2018

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
Messages postés
29738
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 octobre 2020
2 839 >
Messages postés
45
Date d'inscription
mardi 17 avril 2012
Statut
Membre
Dernière intervention
8 novembre 2018

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 ))
Messages postés
45
Date d'inscription
mardi 17 avril 2012
Statut
Membre
Dernière intervention
8 novembre 2018

Super, merci !