function augmeter_points()
{document.write("<?php $points++ ; ?>") ;}
setInterval('augmenter_points()', 1000) ;
Je pense que certains s'appercevront de mon excellent niveau en JavaScript (procédé ironique ), àmoins que mon code soit bon, mais ça m'étonnerai.
Ce que je veux faire, c'est que toutes les secondes, $points s'incrémente, $points étant une variable en PHP. Mais ce script fait planter TOUT mon site : plus rien ne s'affiche ! La page est blanche...
Alors qu'est-ce qui plante ???
Merci de m'aider à répondre à cette question... s'il vous faut plus d'infos, vous me dites, je vous donne tout ça !
Je comprends pas ta deuxième ligne. Tu utilises document.write, ce qui veut dire que tu veux écrire quelque chose. OK. Mais après, en PHP, tu écris $points++
; ce qui veut dire que tu incrémentes ta variable $points
. C'est cool, mais si tu ne mets pas echo $points;
rien ne va s'écrire
En plus, il y a une faute de frappe dans le nom de ta fonction...
Je comprends pas ta deuxième ligne. Tu utilises document.write, ce qui veut dire que tu veux écrire quelque chose. OK. Mais après, en PHP, tu écris $points++
; ce qui veut dire que tu incrémentes ta variable $points
. C'est cool, mais si tu ne mets pas echo $points;
rien ne va s'écrire
Euh... N'importe quoi ? Qui te dit qu'il à envie d'écrire quoi que ce soit ? Et puis de toute façon, rajouter echo $points; ne risque pas d'afficher "le nouveau $point"...
@ MisterScen : Ya moyen de faire marcher ton script avec ajax, mais je suis pas sûr que tu en aies vraiment besoin. Explique ce que tu veux faire exactement.
non, c'est sur que ça peut po fonctionner comme ça. Comme le php est exécuté coté serveur et le js coté client, et que le serveur exécute avant le client, ton code php ne peut pas fonctionner.
Comme il est pris entre "", il est simplement lu comme un string par le client. Pour que le serveur puisse reconnaître le code php dans les pages html, et donc l'éxécuter avant d'envoyer le résultat au navigateur client, il faut que ce code php soit "explicite" pour le serveur. Dans ton code, il est entre "" et donc, il n'est pas possible pour l'interpréteur php de le reconnaître.
Tu peux essayer de lire les tutos sur ajax, qui pourra te permettre de faire ce que tu veux avec le dynamic script loading... je te conseille de t'améliorer un peu côté php avant, parce qu'il faut bien comprendre comment marchent les échanges clients-serveur...
Bin y'a pas moyen...
Faut juste créer une variable JS a la place d'une variable PHP...
Si après, tu veux retrourner ce nombre à une autre page, tourne toi vers un formulaire hidden ou je ne sais quoi...
Pour faire ça, il faudrait que tu recuperes la valeur de ta variable dans ton js, du style echo "var pts = ".$points;
Puis que tu fasses un appel à ta page ensuite en lui fournissant la nouvelle valeur en post ou en get afin de l'incrémenter, de la redonner au JS etc etc. De l'ajax pour pas grand chose visiblement. Surtout que jsuis sur que tu n'as pas besoin de ça. Si tu veux augmenter les points toutes les secondes, tu le fais directement côté serveur, entre deux actualisations on s'enfou de savoir combien on a de points non ? Donc suffit de savoir combien de secondes il y a entre deux actualisations ( tu sauvegardes l'ancien score dans un fichier ou dans la bdd avec le timestamp associé ).
Si jamais on a vraiment besoin d'une actualisation à la seconde, là il faut effectivement que tu utilises ajax, regarde du côté de Ajax.PeriodicalUpdater dans la lib prototype, ça permet de raffraichir à intervalle régulière une balise de ton dom en appellant un script php. Donc toutes les secondes par exemple, ton JS va demander le nouveau code à placer dans ton <div> à ton script php et le remplacer.
Seule chose, tu auras deux accés à la bdd par seconde et par personne connectée du coup.
PHP dans du JavaScript
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.