11521 sujets
JavaScript, DOM et API Web HTML5
Bonjour,
A priori ton code js s'exécute sur la machine d'un utilisateur lorsque celui-ci visite la page qui contient le code js, tandis que ton code php s'exécute sur le serveur avant d'envoyer la page à la machine de l'utilisateur.
Tu ne pourras donc pas "passer" le contenu d'une variable js à une variable php au sein d'une même page "comme ça". Il faudrait envoyer le contenu de ta variable js au serveur et que celui-ci ré-exécute le code php de la page.
Ça m'étonnerait beaucoup que ce soit ça dont tu aies besoin.
Amicalement,
A priori ton code js s'exécute sur la machine d'un utilisateur lorsque celui-ci visite la page qui contient le code js, tandis que ton code php s'exécute sur le serveur avant d'envoyer la page à la machine de l'utilisateur.
Tu ne pourras donc pas "passer" le contenu d'une variable js à une variable php au sein d'une même page "comme ça". Il faudrait envoyer le contenu de ta variable js au serveur et que celui-ci ré-exécute le code php de la page.
Ça m'étonnerait beaucoup que ce soit ça dont tu aies besoin.
Amicalement,
Bonjour,
Je ne sais pas si tu te rends compte de la quantité industrielle d'interprétation qu'on peut avoir de ton besoin quand on te lit.
1) Est-ce que tu veux cacher/montrer/modifier une partie de la page sans avoir besoin de demander au serveur de nouvelles informations ?
2) Ou bien est-ce que tu veux demander au serveur de ré-afficher la page entièrement en en cachant/montrant/modifiant certaines parties en fonction de nouvelles informations se trouvant sur le serveur ?
3) Ou bien est-ce que tu ne veux pas demander au serveur de ré-afficher la page mais juste en cacher/montrer/modifier une partie en demandant au serveur s'il y a des nouvelles informations à prendre en compte avant de décider ce qu'il faut modifier ?
4) Est-ce que les modifications sont susceptibles d'avoir lieu 10 fois par seconde ou une fois par jour ?
5) Est-ce que les modifications concernent la plus grosse partie de la page, ou seulement une toute petite partie ?
6) Est-ce que la page est énorme avec 10000 photos et 1 million de balises html, ou bien est-ce qu'elle ne contient que quelques lignes de texte ?
7) À quel moment est modifiée la variable JS cookie ?
- dès le début du chargement de la page ?
- suite à une action de l'utilisateur ? (quand par exemple il clique sur un bouton ?)
- suite à un calcul plus ou moins complexe en js dans ta page ?
Amicalement,
Modifié par parsimonhi (17 Jan 2022 - 15:33)
BurgerKingKong a écrit :
Ce que je cherche a faire, c'est a faire en sorte que lorsque ma variable cookie est à 1, je n'affiche rien et que lorsque ma variable cookie est a 0 j'affiche tel chose.
Voila.
Je ne sais pas si tu te rends compte de la quantité industrielle d'interprétation qu'on peut avoir de ton besoin quand on te lit.
1) Est-ce que tu veux cacher/montrer/modifier une partie de la page sans avoir besoin de demander au serveur de nouvelles informations ?
2) Ou bien est-ce que tu veux demander au serveur de ré-afficher la page entièrement en en cachant/montrant/modifiant certaines parties en fonction de nouvelles informations se trouvant sur le serveur ?
3) Ou bien est-ce que tu ne veux pas demander au serveur de ré-afficher la page mais juste en cacher/montrer/modifier une partie en demandant au serveur s'il y a des nouvelles informations à prendre en compte avant de décider ce qu'il faut modifier ?
4) Est-ce que les modifications sont susceptibles d'avoir lieu 10 fois par seconde ou une fois par jour ?
5) Est-ce que les modifications concernent la plus grosse partie de la page, ou seulement une toute petite partie ?
6) Est-ce que la page est énorme avec 10000 photos et 1 million de balises html, ou bien est-ce qu'elle ne contient que quelques lignes de texte ?
7) À quel moment est modifiée la variable JS cookie ?
- dès le début du chargement de la page ?
- suite à une action de l'utilisateur ? (quand par exemple il clique sur un bouton ?)
- suite à un calcul plus ou moins complexe en js dans ta page ?
Amicalement,
Modifié par parsimonhi (17 Jan 2022 - 15:33)
Bonjour,
Donc si je résume :
1) Un internaute met l'adresse d'une page écrite en php dans la barre d'adresse de son navigateur.
2) Le serveur exécute le code php et envoie la page au navigateur de l'internaute, en regardant éventuellement s'il existe un cookie qui contient les éventuelles préférences de l'internaute pour l'affichage de cette page (voir l'étape 4). La page s'affiche.
3) À un moment, on demande à l'utilisateur de faire un choix d'affichage. Son choix est stocké provisoirement dans une variable js qui s'appelle "cookie" et qui prend à ce moment-là la valeur 1.
4) Pour les visites suivantes de l'internaute, on souhaite se souvenir du choix de l'utilisateur dans un cookie en utilisant une fonction setCookie().
J'imagine que tu as déjà trouvé un code qui fait ça, puisque tu évoques cette fonction setCookie().
À ce stade, on crée donc un cookie qui va contenir la valeur qui était jusqu'à présent dans la variable js cookie.
5) À la suite du choix de l'internaute, quelque chose doit être modifiée dans l'apparence de la page.
Le code php étant, je le rappelle, déjà exécuté par le serveur avant d'envoyer la page, ce n'est pas du php qui va modifier la page à ce stade.
On a cependant quand même le choix entre :
- modifier immédiatement la page avec du js
ou éventuellement
- provoquer le rechargement de la page pour revenir à l'étape 1, et donc re-fabriquer la page en php et la ré-envoyer au navigateur de l'internaute.
6) Lors d'une visite suivante, avec du php, on regarde si le cookie contenant les préférences de l'internaute pour l'affichage est toujours là et on fabrique la page avec du php en conséquence.
Tu me sembles déjà savoir faire tout ça, non ?
Amicalement,
PS: un petit exemple complet qui fait "tout ça". J'ai choisi la variante où on recharge complètement la page.
Modifié par parsimonhi (18 Jan 2022 - 19:59)
Donc si je résume :
1) Un internaute met l'adresse d'une page écrite en php dans la barre d'adresse de son navigateur.
2) Le serveur exécute le code php et envoie la page au navigateur de l'internaute, en regardant éventuellement s'il existe un cookie qui contient les éventuelles préférences de l'internaute pour l'affichage de cette page (voir l'étape 4). La page s'affiche.
3) À un moment, on demande à l'utilisateur de faire un choix d'affichage. Son choix est stocké provisoirement dans une variable js qui s'appelle "cookie" et qui prend à ce moment-là la valeur 1.
4) Pour les visites suivantes de l'internaute, on souhaite se souvenir du choix de l'utilisateur dans un cookie en utilisant une fonction setCookie().
J'imagine que tu as déjà trouvé un code qui fait ça, puisque tu évoques cette fonction setCookie().
À ce stade, on crée donc un cookie qui va contenir la valeur qui était jusqu'à présent dans la variable js cookie.
5) À la suite du choix de l'internaute, quelque chose doit être modifiée dans l'apparence de la page.
Le code php étant, je le rappelle, déjà exécuté par le serveur avant d'envoyer la page, ce n'est pas du php qui va modifier la page à ce stade.
On a cependant quand même le choix entre :
- modifier immédiatement la page avec du js
ou éventuellement
- provoquer le rechargement de la page pour revenir à l'étape 1, et donc re-fabriquer la page en php et la ré-envoyer au navigateur de l'internaute.
6) Lors d'une visite suivante, avec du php, on regarde si le cookie contenant les préférences de l'internaute pour l'affichage est toujours là et on fabrique la page avec du php en conséquence.
Tu me sembles déjà savoir faire tout ça, non ?
Amicalement,
PS: un petit exemple complet qui fait "tout ça". J'ai choisi la variante où on recharge complètement la page.
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Cookie</title>
<?php
$theme="0";
$background="#666";
$color="#fff";
if(isset($_COOKIE['G'])&&($_COOKIE['G']=="1"))
{
$theme="1";
$background="#fff";
$color="#666";
}
?>
<style>
body {
background:<?=$background?>;
color:<?=$color?>;
}
</style>
<script>
let cookie=<?=$theme?>;
function setCookie(a) {
let d=new Date(Date.now());
d.setMonth(d.getMonth()+2);
document.cookie='G='+(a?"1":"0")+';expires='+d;
}
function setUserChoice()
{
let e=document.querySelector('[name="theme"]');
if(e) cookie=e.checked?1:0;
setCookie(cookie);
window.location.reload()
}
</script>
</head>
<body>
<label>Thème clair :
<input <?php if($theme=="1") echo "checked ";?>name="theme" type="radio" value="1"></label>
<label>Thème foncé :
<input <?php if($theme=="0") echo "checked ";?>name="theme" type="radio" value="0"></label>
<button type="button" onclick="setUserChoice()">OK</button>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed non risus. Suspendisse lectus tortor, dignissim sit amet, adipiscing nec, ultricies sed, dolor. Cras elementum ultrices diam. Maecenas ligula massa, varius a, semper congue, euismod non, mi. Proin porttitor, orci nec nonummy molestie, enim est eleifend mi, non fermentum diam nisl sit amet erat. Duis semper. Duis arcu massa, scelerisque vitae, consequat in, pretium a, enim. Pellentesque congue. Ut in risus volutpat libero pharetra tempor. Cras vestibulum bibendum augue. Praesent egestas leo in pede. Praesent blandit odio eu enim. Pellentesque sed dui ut augue blandit sodales. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Aliquam nibh. Mauris ac mauris sed pede pellentesque fermentum. Maecenas adipiscing ante non diam sodales hendrerit.
</p>
</body>
</html>
Modifié par parsimonhi (18 Jan 2022 - 19:59)