JeuWeb - Crée ton jeu par navigateur
Décompte Javascript-PhP - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Décompte Javascript-PhP (/showthread.php?tid=4283)



Décompte Javascript-PhP - tereur - 16-08-2009

Bonjour,

Voilà je vais tous vous expliquez. Je souhaite faire un Décompteur Javascript-PhP pour le temps restant de voyage entres plusieurs base de A à B.

Le soucis c'est que mon compteur fonctionne bien pour une seul flotte mais dès que j'en est 2-3-4 etc sa déconne voici le script :

Le fichier javascript

Code :
function flotte(krucial)
{

    heure = Math.round((krucial / 3600) - 0.5);
    min = Math.round(((krucial - (3600 * heure)) / 60) - 0.5);
    sec = Math.round(krucial - (3600 * heure) - (60 * min));

    if(sec < 0)
    {
        sec = 0;
        min = min - 1;
    }

    if(min < 0)
    {
        min = 0;
        heure = heure - 1;
    }

    if (sec < 10)
    {
        sec0 = "0";
    }
    else
    {
        sec0 = "";
    }
    
    if (min < 10)
    {
        min0 = "0";
    }
    else
    {
        min0 = "";    
    }
    
    if (heure < 10)
    {
        heure0 = "0";
    }
    else
    {
        heure0 = "";
    }
    
    DinaHeure = heure0 + heure + " H " + min0 + min + " Min " + sec0 + sec  ;
    total = DinaHeure

    if(heure < 0)
    {
        total = "Flotte Arrivé";
    }

    document.getElementById("construction2").innerHTML = total;

    krucial = krucial - 1;

    tempo = setTimeout("construire(" + krucial + ")", 1000)
}


et mon code php

Code PHP :
<?php 
$unites_req
= $sql->query('SELECT * FROM flottes WHERE
utilisateur_arrivee="'
. $utilisateur['id'] . '"
OR
utilisateur_depart="'
. $utilisateur['id'] . '"
ORDER BY heure_arrivee
'
);

if (
mysql_num_rows($unites_req) > 0)
{
// debut if unites en cours

include("classes/unites.class.php"); // on ouvre le fichier de classe
$unit = new unites; // On met en place la classe

$nb=1; // Permet de change le num de chaque unites pour faire fonctionner la fonction js des temps defillants

$unites = ''; // On incremente pour pas provoqué d'erreurs

while ($row = mysql_fetch_array($unites_req) )
{

// Calcule du temps restant
$temps = ($row["heure_arrivee"] - time() );
$tpl->value("temps", ".<div id='construction'></div><script>construire('".$temps."'); </script>");
}

Je précises que le fichier Javascript sert aussi pour les constructions.

Merci à ceux qui veulent bien m'aidai.


RE: Décompte Javascript-PhP - Ekilio - 16-08-2009

Logique. Tu utilises un ID pour identifier la div que tu met à jour (et un getElementById). Mais les ID sont uniques : ton javascript se retrouve du coup face à un problème, vu qu'il ne sais pas quel div il doit mettre à jour étant donné qu'il en a plusieurs avec le même ID.

Utilises des ID différentes (avec l'ID de la flotte par exemple) et passes-les en paramètres à Javascript Smile


RE: Décompte Javascript-PhP - tereur - 16-08-2009

(16-08-2009, 09:27 PM)Ekilio a écrit : Logique. Tu utilises un ID pour identifier la div que tu met à jour (et un getElementById). Mais les ID sont uniques : ton javascript se retrouve du coup face à un problème, vu qu'il ne sais pas quel div il doit mettre à jour étant donné qu'il en a plusieurs avec le même ID.

Utilises des ID différentes (avec l'ID de la flotte par exemple) et passes-les en paramètres à Javascript Smile

D'accord mais quand on va envoyer 8 flotte par exemple il y aura encore le même probléme. Donc sa ira pas non plus.


RE: Décompte Javascript-PhP - Anthor - 16-08-2009

http://www.jeuweb.org/board/gritter-jquery-css-affichage-de-notifications-t-5895.html#pid74133


RE: Décompte Javascript-PhP - Ekilio - 17-08-2009

(16-08-2009, 10:15 PM)tereur a écrit :
(16-08-2009, 09:27 PM)Ekilio a écrit : Logique. Tu utilises un ID pour identifier la div que tu met à jour (et un getElementById). Mais les ID sont uniques : ton javascript se retrouve du coup face à un problème, vu qu'il ne sais pas quel div il doit mettre à jour étant donné qu'il en a plusieurs avec le même ID.

Utilises des ID différentes (avec l'ID de la flotte par exemple) et passes-les en paramètres à Javascript Smile

D'accord mais quand on va envoyer 8 flotte par exemple il y aura encore le même probléme. Donc sa ira pas non plus.

Ben non : ta flotte 1 aura une div nommée "construction1", ta flotte 2 une div nommée "construction2", ta flotte 3 une div "construction3" et ainsi de suite. Et tu rajoutes un paramètre à ta fonction pour lui dire quelle div doit être mise à jour.


RE: Décompte Javascript-PhP - tereur - 17-08-2009

Bonjour,

Merci de votre aide. Je pense que maintenant je vais pouvoir y arrivé.

Amicalement Tereur.

(17-08-2009, 09:20 AM)Ekilio a écrit :
(16-08-2009, 10:15 PM)tereur a écrit :
(16-08-2009, 09:27 PM)Ekilio a écrit : Logique. Tu utilises un ID pour identifier la div que tu met à jour (et un getElementById). Mais les ID sont uniques : ton javascript se retrouve du coup face à un problème, vu qu'il ne sais pas quel div il doit mettre à jour étant donné qu'il en a plusieurs avec le même ID.

Utilises des ID différentes (avec l'ID de la flotte par exemple) et passes-les en paramètres à Javascript Smile

D'accord mais quand on va envoyer 8 flotte par exemple il y aura encore le même probléme. Donc sa ira pas non plus.

Ben non : ta flotte 1 aura une div nommée "construction1", ta flotte 2 une div nommée "construction2", ta flotte 3 une div "construction3" et ainsi de suite. Et tu rajoutes un paramètre à ta fonction pour lui dire quelle div doit être mise à jour.