Jquery, Ajax, SetInterval, PHP
pilten
Messages postés
41
Date d'inscription
Statut
Membre
Dernière intervention
-
pilten Messages postés 41 Date d'inscription Statut Membre Dernière intervention -
pilten Messages postés 41 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'ai développé une application qui permet de créer un petit diaporama de page html
Pour ce faire :
J'utilise AJAX qui via setinterval, va rafraichir le contenu d'une DIV
<html>
<head>
<script>
function playlist(){
<?php
$duree = get_duree();
?>
$("#madiv").load(content.php');
}
setInterval('playlist()', <?php echo $duree ?>);
</script>
</head>
<body>
<DIV id='madiv'></DIV>
</body>
</html>
Voilà, ce script fonctionne sans problème pour le rafraichissement
L'interval de refresh est récupé via la fonction get_duree (ex : 10secondes)
Le premiere fois que je lance ce script. Aucun problème
Par contre si je change (dans la DB) la valeur de get_duree(), le changement ne s'effectue jamais.
Hors, la fonction Playlist devrait être réexecutée à chaque refresh
Je suppose que la fonction playlist (Jquery) ne veut pas exécuter le PHP ....
Comment faire ?
D'avance je vous remercie
Bonne journée
j'ai développé une application qui permet de créer un petit diaporama de page html
Pour ce faire :
J'utilise AJAX qui via setinterval, va rafraichir le contenu d'une DIV
<html>
<head>
<script>
function playlist(){
<?php
$duree = get_duree();
?>
$("#madiv").load(content.php');
}
setInterval('playlist()', <?php echo $duree ?>);
</script>
</head>
<body>
<DIV id='madiv'></DIV>
</body>
</html>
Voilà, ce script fonctionne sans problème pour le rafraichissement
L'interval de refresh est récupé via la fonction get_duree (ex : 10secondes)
Le premiere fois que je lance ce script. Aucun problème
Par contre si je change (dans la DB) la valeur de get_duree(), le changement ne s'effectue jamais.
Hors, la fonction Playlist devrait être réexecutée à chaque refresh
Je suppose que la fonction playlist (Jquery) ne veut pas exécuter le PHP ....
Comment faire ?
D'avance je vous remercie
Bonne journée
A voir également:
- Jquery, Ajax, SetInterval, PHP
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Retour a la ligne php - Forum Webmastering
- Retour à la ligne php ✓ - Forum PHP
- Yggtorrent erreur ajax ✓ - Forum Webmastering
6 réponses
Bonjour
À chaque refresh, il n'y a que 'madiv' qui est remis à jour. Ta fonction 'playlist()' ne change pas, et la durée du setInterval ne change donc pas non plus.
Il faut bien te rendre compte que
À chaque refresh, il n'y a que 'madiv' qui est remis à jour. Ta fonction 'playlist()' ne change pas, et la durée du setInterval ne change donc pas non plus.
Il faut bien te rendre compte que
<?php $duree = get_duree(); ?>n'existe absolument pas dans le javascript (vérifie en regardant le source de la page affichée) et n'a donc aucune raison de s'exécuter !
J'ai essayé avec une variable de SESSION, sans succès
<script>
function playlist(){
<?php
$_SESSION['duree']= get_duree();
?>
$("#madiv").load(content.php');
}
setInterval('playlist()', <?php echo $_SESSION['duree'] ?>);
</script>
dans le fichier content.php, je modifie la valeur de ma variable de session (je réattaque la db)
Apparemment, ca ne fonctionne pas non plus ....
Quand je fais un "view source code", je vois bien le bon code, correct ... mais en réalité, le modification ne s'effectue pas
Merci d'avance
REMARQUE
Le premier passage dans la fonction playlist s'effectue sans problème, mais c'est à partir du premier refresh que cela ne va plus
<script>
function playlist(){
<?php
$_SESSION['duree']= get_duree();
?>
$("#madiv").load(content.php');
}
setInterval('playlist()', <?php echo $_SESSION['duree'] ?>);
</script>
dans le fichier content.php, je modifie la valeur de ma variable de session (je réattaque la db)
Apparemment, ca ne fonctionne pas non plus ....
Quand je fais un "view source code", je vois bien le bon code, correct ... mais en réalité, le modification ne s'effectue pas
Merci d'avance
REMARQUE
Le premier passage dans la fonction playlist s'effectue sans problème, mais c'est à partir du premier refresh que cela ne va plus
J'ai essayé de t'expliquer, sans succès
Le PHP N'EXISTE PAS dans le script javascript reçu par le client. Il n'a aucune raison de s'exécuter.
Que tu modifies $_SESSION['duree'] ou $duree tout court d'ailleurs, ça ne change rien : le script a été envoyé au client la première fois avec certaines valeurs, et quand tu fais de refresh tu ne renvoies que 'madiv', pas le script. Donc le script reste tel quel, avec la valeur qu'il y avait dedans au départ
Le PHP N'EXISTE PAS dans le script javascript reçu par le client. Il n'a aucune raison de s'exécuter.
Que tu modifies $_SESSION['duree'] ou $duree tout court d'ailleurs, ça ne change rien : le script a été envoyé au client la première fois avec certaines valeurs, et quand tu fais de refresh tu ne renvoies que 'madiv', pas le script. Donc le script reste tel quel, avec la valeur qu'il y avait dedans au départ
Oui bon ok, j'ai bien compris finalement .....
J'essaie en réalité de trouver une solution à mon problème
J'essaie de pouvoir placer des variables dynamiques sur cette ligne
$("#madiv").load(content.php').hide().slideDown(3000).Delay(7000).slideUp(3000 ...
Oui, j'ai une interface user admin, dans laquelle j'aimerais que l'utilisateur puisse changer les effets, les temps de transition .....
j'ai aussi envie de mettre une variable dynamique dans cette ligne
setInterval('playlist()', 15000);
Avez-vous une idée ? merci d'avance
J'essaie en réalité de trouver une solution à mon problème
J'essaie de pouvoir placer des variables dynamiques sur cette ligne
$("#madiv").load(content.php').hide().slideDown(3000).Delay(7000).slideUp(3000 ...
Oui, j'ai une interface user admin, dans laquelle j'aimerais que l'utilisateur puisse changer les effets, les temps de transition .....
j'ai aussi envie de mettre une variable dynamique dans cette ligne
setInterval('playlist()', 15000);
Avez-vous une idée ? merci d'avance
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Je ne suis pas expert en jQuery, et il y a sans doute plus simple, mais je te propose ça :
Crée un div avec display:'none' pour ne pas gêner et comme contenu la valeur initiale de ta tempo
Dans playlist(), récupère dynamiquement le contenu de cette tempo (getElementById) et utilise-le pour relancer ton setInterval
Modifie dynamiquement le contenu de ce div avec jQuery
Crée un div avec display:'none' pour ne pas gêner et comme contenu la valeur initiale de ta tempo
Dans playlist(), récupère dynamiquement le contenu de cette tempo (getElementById) et utilise-le pour relancer ton setInterval
Modifie dynamiquement le contenu de ce div avec jQuery
Bonjour,
Je pense avoir trouvé une idée
Pour rappel, j'ai simplement une fonction "PlayList", qui charge un fichier PHP (le fichier php contient les requetes .....)
Ensuite, j'ai une fonction Setinterval pour le refresh de ma fonction Playlist
Maintenant ca se complique. Dans la fonction Playlist, j'ai décidé d'aller rechercher (dans un fichier PHP), la valeur de mon EFFET
Dans ce contexte ci :
La valeur de (var effet1) = fadeIn(3000);
Je suis sur et certain de cette valeur
Le problème c'est que dans la ligne de code Jquery :
$("#workframe").load('content.php').hide().effet1.delay(10000).fadeOut(3000);
Je ne sais pas comment écrire la valeur de effet1 ....
Pour le moment, ca ne fonctionne pas .....
En fait je ne sais pas comment écrire du javascript dans une ligne Jquery
Merci d'avance !!!
function playlist(){
var xhr=null;
if (window.XMLHttpRequest) {
xhr = new XMLHttpRequest();
}
else if (window.ActiveXObject)
{
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
//on appelle le fichier reponse.txt
xhr.open("GET", "contenu/cache.php", false);
xhr.send(null);
var effet1 = xhr.responseText + "(3000)";
//
$("#workframe").load('content.php').hide().effet1.delay(10000).fadeOut(3000);
}
setInterval('playlist()', 16000);
Je pense avoir trouvé une idée
Pour rappel, j'ai simplement une fonction "PlayList", qui charge un fichier PHP (le fichier php contient les requetes .....)
Ensuite, j'ai une fonction Setinterval pour le refresh de ma fonction Playlist
Maintenant ca se complique. Dans la fonction Playlist, j'ai décidé d'aller rechercher (dans un fichier PHP), la valeur de mon EFFET
Dans ce contexte ci :
La valeur de (var effet1) = fadeIn(3000);
Je suis sur et certain de cette valeur
Le problème c'est que dans la ligne de code Jquery :
$("#workframe").load('content.php').hide().effet1.delay(10000).fadeOut(3000);
Je ne sais pas comment écrire la valeur de effet1 ....
Pour le moment, ca ne fonctionne pas .....
En fait je ne sais pas comment écrire du javascript dans une ligne Jquery
Merci d'avance !!!
function playlist(){
var xhr=null;
if (window.XMLHttpRequest) {
xhr = new XMLHttpRequest();
}
else if (window.ActiveXObject)
{
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
//on appelle le fichier reponse.txt
xhr.open("GET", "contenu/cache.php", false);
xhr.send(null);
var effet1 = xhr.responseText + "(3000)";
//
$("#workframe").load('content.php').hide().effet1.delay(10000).fadeOut(3000);
}
setInterval('playlist()', 16000);