Se connecter avec
S'enregistrer | Connectez-vous

[résolu]équivalent de javascript en php

Dernière réponse : dans Programmation

Salut,
j'ai fais sur mon site un quizz (tout est expliqué dans un autre topic). Pour calculer le score, j'ai besion d'une variable départ que je défini la première fois que je viens sur la page (avec le lien ma_page.php?code=1), et qu'ensuite je retransmet par un formulaire.
La variable est inséré dans une balise <input> grace à du javascript. Petit hic, j'ai un message d'erreur qui me dit que document.formulaire.depart n'est pas un objet. Et pourtant, moi je crois bien que document.formulaire.depart existe.
Quelqun voit une erreur ?
  1. <head>
  2. <script language="javascript">
  3. <?php
  4. if ($code == 1){
  5. echo "maintenant = new Date();";
  6. echo "depart = maintenant.getTime();";
  7. }
  8. else{
  9. echo "depart = $depart ;";
  10. }
  11. ?>
  12. document.formulaire.depart.value = depart;
  13. </script>
  14. </head>
  15. <body>
  16. <form name="formulaire" method="post" action="ma_page.php">
  17. <input name="depart" value="">
  18. </form>

Lassé par la pub ? Créez un compte

En fait je calcule l'heure de mon quizz en fonction du temps depuis lequel on a commencé le quizz (+ ça fait longtemps, - moins une réponse juste ne rapporte de pionts). Mais le truc, c'est que je n'affiche pas toute les questions du quizz sur une seule page, j'affiche 3 questions par page, puis on clique sur valider et la même page est rapelé est affich 3 nouvelles questions.
Seulement, pour calculer depuis combien de temps on a commencé le quizz, il faut que je ne définisse depart que la première fois que je viens sur la page. C'est pour ça que lorsque l'on commence le quizz, la page est appelé avec ?code=1, ce qui me permet de savoir si je dois calculer depart ou non. Ensuite depart est mis dans le input pour le transmettre grace à un formulaire qui rappelle la même page mais sans ?code=1.
Le problème, c'est que je n'arrive pas à mettre depart dans le input.

C'est bien là le problème : je ne comprend rien du tout, sinon je ne serais pas là.
En fait le vrai problème c'est pas de savoir si je met
  1. document.formulaire.depart.value = depart;
  2. <form name="formulaire" method="post" action="ma_page.php">
  3. <input name="depart" value="">
  4. </form>

ou :
  1. <input name="ce que tu veux" value="<?php $depart ?>">

(d'ailleur je met le premier code)
Le problème c'est qu'internet ne me trouve pas document.formulaire.depart .

mais c'est normal nom de diou c'est tellement mal codé que je sais meme pas comment t'expliqué de manière générique et sans parlé de ton quizz

Les mecs ils expliquent leur problème en disant oui j'ai un souci je n'arrive pas a afficher la tronche de mon voisin qui à un pc de la mort... On s'en fous faites des syntheses

A cela je suis fatigué donc :jesors:

Pour moi document.formulaire.depart.value implique une conditionnelle avec des test pas d'affectation

Mais ce que tu veux faire c'est transmettre par formulaire la date et l'heure enregistré dans $depart, non?

Tu l'inseres avec le value de input et dans la page ou tu envoies les données tu recuperes cette valeur avec le $_POST

Mais j'arrive pas a voir si c'est moi qui suis a coté de la plaque, parce que ce que je comprend est simple et tu t'y prend mal

Je n'ai pas tout à fait compris ce que tu me dit.
Je vais réexpliqué plus clairement ce que je cherche à faire.
J'essaye que lorsque l'on vient sur la page pour la première fois, depart soit défini avec la date et l'heure. Mais ensuite, depart est transmit grace à un formulaire et on ne le redéfinit pas.
Le problème, c'est qu'au début je défini depart avec du javascript. C'est pourquoi je ne peux pas mettre <input name="depart" value="<?php echo $depart; ?>"> car depart n'est pas encore défini.

Une solution serait de faire
  1. maintenant = new date();
  2. depart = maintenant.getTime();

en php et pas en javascript. Je pourrais alors faire <input name="depart" value="<?php echo $depart; ?>">.
Mais je ne sais pas si c'est possible ...

ahhhh j'ai compris mais t'en à rien à carré du javascript fait tout en php, utilise la fonction date de php (je croyais que c'etait du php et non du JS fatigué j'ai dis), le resultat tu le mets dans $depart et tu mets cette variable dans le value du input (sans le echo)

Bon, puisqu'on a plus le droit de pleurer, je sèche mes larmes ...:cry: 
Sinon date() c'est pas ce qui me faut, time() non plus (c'est en secondes). Mais j'ais trouvé ... microtime().
Seulement, comme je l'ai dit plus haut, je ne sais pas trop m'en servir. Est-ce que si je met $depart = microtime() ça marche ?

Salut, c'est bon j'ai résolu mon problème en fait c'était un truc tellement con que j'ose pas le dire :oops:  ...
Voila mon fameux quizz qui m'a posé tant de problème.
Mais je l'ai pas encore mis sur mon site car il rest malgrè tout un dernier problème, mais ça je vais m'en occuper plus tard (c'est déjà bien d'avoir réussi tout le reste) ...
Lassé par la pub ? Créez un compte
Tom's guide dans le monde