Compt à rebour

kent151 Messages postés 11 Date d'inscription dimanche 6 novembre 2005 Statut Membre Dernière intervention 30 avril 2006 - 21 avril 2006 à 19:21
kent151 Messages postés 11 Date d'inscription dimanche 6 novembre 2005 Statut Membre Dernière intervention 30 avril 2006 - 21 avril 2006 à 22:12
Bonjour à tous,
Je cherche à créé un petit compt à rebour.
Au début cela me parraissait simple mais maintenant j'ai trop d'exigences envers mon script et je n'y arrive plus.

Ce que je voudrais:

On clique sur un lien nommé "acheter" (le compte à rebour s'affiche et démarre).
Pendant ce temps on peut quitter le net vister d'autres pages...
Le compte à rebour est terminé: le mot TERMINE apparait à la place du compteur.
A ce moment (dans ma bdd mysql avc phpmyadmin) je voudrais passer le valeur de "dolzz" à 40.

<LABEL onclick="return (document.getElementById('checkbox_row_8') ? false : true)" for=checkbox_row_8>dolzz</LABEL>,
bigint(20),
,
,
Non,
50
et augmenter la valeur de "capacitée" à 3.

<LABEL onclick="return (document.getElementById('checkbox_row_7') ? false : true)" for=checkbox_row_7>capacitee</LABEL>,
bigint(20),
,
,
Non,
1

Puis un fois cliqué sur le mot TERMINE le lien nommé "acheté" réapparait.

Durdur on peut le faire ensemble amis programmeurs?

3 réponses

kent151 Messages postés 11 Date d'inscription dimanche 6 novembre 2005 Statut Membre Dernière intervention 30 avril 2006
21 avril 2006 à 20:39
Voila j'ai fais un script (meme s'il ne fait pas tous ce que je voudrais... snif)


function t(){ v=new Date(); n=new Date(); o=new Date(); for(cn=1;cn<=anz;cn++){ bxx=document.getElementById('bxx'+cn); ss=bxx.title; s=ss-Math.round((n.getTime()-v.getTime())/1000.); m=0;h=0; if(s<0){ bxx.innerHTML="-" }else{ if(s>59){ m=Math.floor(s/60); s=s-m*60 } if(m>59){ h=Math.floor(m/60); m=m-h*60 } if(s<10){ s="0"+s } if(m<10){ m="0"+m } bxx.innerHTML=h+":"+m+":"+s+""; } bxx.title=bxx.title-1; } window.setTimeout("t();",999);}

C'est tous ce dont je suis capable... J'ai vraiment besoin d'aide les gars svp.
0
Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 4
21 avril 2006 à 22:05
Salut,
c'est du javascript tout ça... à la fin de ton compte à rebours il faut que tu envoies une requête mysql, donc soit tu redirectionnes vers un page php, soit tu exécutes une xmlhttprequest (ajax)
dans tous les cas, ça n'a rien de sécurisé.
à+
0
kent151 Messages postés 11 Date d'inscription dimanche 6 novembre 2005 Statut Membre Dernière intervention 30 avril 2006
21 avril 2006 à 22:12
Voila j'ai fais un beau script!

<SCRIPT type=text/javascript>
function CD_ZP(objVal){
var str=""+objVal;
var strl=str.length;
return(strl!=2?"0"+str:str)
};


function pa_time(Time_Left){
if(Time_Left == 0) {
//Time_Left = 0;


window.open("test.php","_self");
}else{
var heures = Math.floor(Time_Left / 3600);
var minutes = Math.floor(((Time_Left / 3600) - Math.floor(Time_Left / 3600)) * 60);
var seconds = Time_Left - ((Math.floor(Time_Left / 60)) * 60);


document.getElementById("pa_time").innerHTML = CD_ZP(heures) + ':' + CD_ZP(minutes) + ':' + CD_ZP(seconds);
setTimeout('pa_time(' + (Time_Left-1) + ');', 1000);
}
}
</SCRIPT>


<?
//+++++++++++++++++++++++++++++++++++++++++++++++++++++
//on se connecte a la bdd
mysql_connect ('localhost','root','');
 $BD_base        = "dolbizz";
 @mysql_select_db($BD_base)
        or die("Impossible de se connecter &#224; la base de donn&#233;es.");
//+++++++++++++++++++++++++++++++++++++++++++++++++++++


$id = 1;
$req = mysql_query("SELECT mktime,pa FROM tutoriaux_tabletest WHERE id='$id'") or die (mysql_error());
$data = mysql_fetch_array($req);
$pa=$data['pa'];
$pa_fini=$data['mktime'];//le mktime de la table correspond a la date de fin du compte a rebours
$mktime=mktime();
if($pa_fini<=$mktime){//si l date de fin est <= au temps d'aujourdhui
$pa = $pa-1;
$mktime = $mktime + 60;//test pour 1 minute
mysql_query("UPDATE tutoriaux_tabletest Set mktime = '$mktime', pa='$pa' WHERE id='$id'") or die (mysql_error());
}


$req = mysql_query("SELECT mktime,pa FROM tutoriaux_tabletest WHERE id='$id'") or die (mysql_error());
$data = mysql_fetch_array($req);
$pa=$data['pa'];
$pa_fini=$data['mktime'];//le mktime de la table correspond a la date de fin du compte a rebours
$mktime=mktime();
echo 'Pa:'.$pa.'
';
echo 'Prochain dans: 

<SCRIPT type=text/javascript>pa_time(';
$req = mysql_query("SELECT mktime FROM tutoriaux_tabletest WHERE id='$id'") or die (mysql_error());
$data = mysql_fetch_array($req);
$pa_fini=$data['mktime'];//r&#233;up&#233;ration de la date en seconde de la fin //du compte &#224; rebours
echo $pa_fini-mktime();//ici le script va faire la difference entre la date en secondes de maintenant et la date de fin pour savoir dans combien de temps le compte a rebours fini
echo ')</SCRIPT>';


Voila donc vous l'aurez compris c'est le nombre de pa que ce script change à la fin du compte à rebour qui est fixé ici à une minute.


Je cherche également à l'optimiser:
Pouvoir lancer le script sur un clique d'un lien.
Pouvoir afficher le mot "TERMINE" à la fin du compte à rebour.
Pouvoir cliquer ce ce lien TERMINE qui nous ramène au début du script non enclenché.
Pouvoir quitter la page et revenir le temps du compte à rebour (cela ne doit pas etre infaisable vu que sur le site "ogame" ils l'ont fait...)
--------------------------------------------------------
Voila ce serai vraiment simpas de m'aider car j'ai bien galéré.
++
<!-- / message -->,
----

<!-- BEGIN TEMPLATE: postbit_onlinestatus --><!-- END TEMPLATE: postbit_onlinestatus --><!-- -->,
<!-- controls -->
0
Rejoignez-nous