Ik zit met een naar mijn mening raar probleem. Ik heb 2 php-pagina's met daarin een javascript, die beiden een teller moeten voorstellen. De ene teller telt grondstoffen, en wordt dus steeds groter. De andere teller is een klok vanaf een bepaald aantal seconde, en telt dus af. Dit zijn de javascripts:
grondstoffen.php:
<?php
session_start();
error_reporting(E_ALL);
include('files/dbc.php');
if(isset($_GET['d']))
{
$dorp_id = $_GET['d'];
}
else
{
$dorp_id = $_SESSION['dorp_id'];
}
$gebouw_query = mysql_query("
SELECT *
FROM dorpen
WHERE dorpen.dorp_id = '".$dorp_id."'");
while($gebouw_res = mysql_fetch_assoc($gebouw_query))
{
//print_r($gebouw_res);
//echo '<br>';
$_SESSION['niv'] = $gebouw_res[niv];
if($gebouw_res[gebouw_id] == 2)
{
include('pakhuis.php');
}
// echo '<br>';
$productie[hout] = $gebouw_res['hout_productie'];
$productie[klei] = $gebouw_res['klei_productie'];
$productie[ijzer] = $gebouw_res['ijzer_productie'];
$productie[graan] = $gebouw_res['graan_productie'];
$productie[goud] = $gebouw_res['goud_productie'];
//print_r($productie);
//echo '<br>';
$pakhuis[hout] = $gebouw_res['hout'];
$pakhuis[klei] = $gebouw_res['klei'];
$pakhuis[ijzer] = $gebouw_res['ijzer'];
$pakhuis[graan] = $gebouw_res['graan'];
$pakhuis[goud] = $gebouw_res['goud'];
// print_r($pakhuis);
// echo '<br>';
$tijd[hout] = $gebouw_res['hout_tijd'];
$tijd[klei] = $gebouw_res['klei_tijd'];
$tijd[ijzer] = $gebouw_res['ijzer_tijd'];
$tijd[graan] = $gebouw_res['graan_tijd'];
$tijd[goud] = $gebouw_res['goud_tijd'];
// print_r($tijd);
//echo '<br>';
$tijd_explode[hout] = explode(' ', $tijd[hout]);
$tijd_explode[klei] = explode(' ', $tijd[klei]);
$tijd_explode[ijzer] = explode(' ', $tijd[ijzer]);
$tijd_explode[graan] = explode(' ', $tijd[graan]);
$tijd_explode[goud] = explode(' ', $tijd[goud]);
//echo '<br>';
// print_r($tijd_explode);
//echo '<br>';
$tijd_explode[dag][hout] = explode('-', $tijd_explode[hout][0]);
$tijd_explode[dag][klei] = explode('-', $tijd_explode[klei][0]);
$tijd_explode[dag][ijzer] = explode('-', $tijd_explode[ijzer][0]);
$tijd_explode[dag][graan] = explode('-', $tijd_explode[graan][0]);
$tijd_explode[dag][goud] = explode('-', $tijd_explode[goud][0]);
//print_r($tijd_explode[dag]);
//echo '<br>';
$tijd_explode[tijd][hout] = explode(':', $tijd_explode[hout][1]);
$tijd_explode[tijd][klei] = explode(':', $tijd_explode[klei][1]);
$tijd_explode[tijd][ijzer] = explode(':', $tijd_explode[ijzer][1]);
$tijd_explode[tijd][graan] = explode(':', $tijd_explode[graan][1]);
$tijd_explode[tijd][goud] = explode(':', $tijd_explode[goud][1]);
// print_r($tijd_explode[tijd]);
$tijdstamp[hout] = mktime(
$tijd_explode[tijd][hout][0],
$tijd_explode[tijd][hout][1],
$tijd_explode[tijd][hout][2],
$tijd_explode[dag][hout][1],
$tijd_explode[dag][hout][2],
$tijd_explode[dag][hout][0]);
$tijdstamp[klei] = mktime(
$tijd_explode[tijd][klei][0],
$tijd_explode[tijd][klei][1],
$tijd_explode[tijd][klei][2],
$tijd_explode[dag][klei][1],
$tijd_explode[dag][klei][2],
$tijd_explode[dag][klei][0]);
$tijdstamp[ijzer] = mktime(
$tijd_explode[tijd][ijzer][0],
$tijd_explode[tijd][ijzer][1],
$tijd_explode[tijd][ijzer][2],
$tijd_explode[dag][ijzer][1],
$tijd_explode[dag][ijzer][2],
$tijd_explode[dag][ijzer][0]);
$tijdstamp[graan] = mktime(
$tijd_explode[tijd][graan][0],
$tijd_explode[tijd][graan][1],
$tijd_explode[tijd][graan][2],
$tijd_explode[dag][graan][1],
$tijd_explode[dag][graan][2],
$tijd_explode[dag][graan][0]);
$tijdstamp[goud] = mktime(
$tijd_explode[tijd][goud][0],
$tijd_explode[tijd][goud][1],
$tijd_explode[tijd][goud][2],
$tijd_explode[dag][goud][1],
$tijd_explode[dag][goud][2],
$tijd_explode[dag][goud][0]);
//echo '<br>';
//print_r($tijdstamp);
$huidige_tijd = time();
$tijd_geleden[hout] = $huidige_tijd - $tijdstamp[hout];
$tijd_geleden[klei] = $huidige_tijd - $tijdstamp[klei];
$tijd_geleden[ijzer] = $huidige_tijd - $tijdstamp[ijzer];
$tijd_geleden[graan] = $huidige_tijd - $tijdstamp[graan];
$tijd_geleden[goud] = $huidige_tijd - $tijdstamp[goud];
//print_r($tijd_geleden);
//echo '<br>';
$pakhuis[hout] = $gebouw_res['hout'] + floor(($productie[hout]/3600) * $tijd_geleden[hout]);
$pakhuis[klei] = $gebouw_res['klei'] + floor(($productie[klei]/3600) * $tijd_geleden[klei]);
$pakhuis[ijzer] = $gebouw_res['ijzer'] + floor(($productie[ijzer]/3600) * $tijd_geleden[ijzer]);
$pakhuis[graan] = $gebouw_res['graan'] + floor(($productie[graan]/3600) * $tijd_geleden[graan]);
$pakhuis[goud] = $gebouw_res['goud'] + floor(($productie[goud]/3600) * $tijd_geleden[goud]);
// print_r($pakhuis);
$milliseconde[hout] = (3600 * 1000) / $productie[hout];
$milliseconde[klei] = (3600 * 1000) / $productie[klei];
$milliseconde[ijzer] = (3600 * 1000) / $productie[ijzer];
$milliseconde[graan] = (3600 * 1000) / $productie[graan];
$milliseconde[goud] = (3600 * 1000) / $productie[goud];
//print_r($milliseconde);
}
$max_pakhuis = 0;
$max_schatkamer = 0;
$array_inhoud = array(500, 800, 1200, 1800, 2400, 3200, 4000, 5000, 6000, 8000, 10000);
$max_pakhuis_query = mysql_query("SELECT * FROM gebouwen_velden WHERE gebouw_id = 2 AND dorp_id = '".$dorp_id."'");
while($max_pakhuis_res = mysql_fetch_assoc($max_pakhuis_query))
{
$max_pakhuis = $max_pakhuis + $array_inhoud[$max_pakhuis_res[niv]];
}
if($max_pakhuis == 0)
{
$max_pakhuis = 500;
}
$max_schatkamer_query = mysql_query("SELECT * FROM gebouwen_velden WHERE gebouw_id = 3 AND dorp_id = '".$dorp_id."'");
while($max_schatkamer_res = mysql_fetch_assoc($max_schatkamer_query))
{
$max_schatkamer = $max_schatkamer + $array_inhoud[$max_schatkamer_res[niv]];
}
if($max_schatkamer == 0)
{
$max_schatkamer = 500;
}
if($pakhuis[hout] > $max_pakhuis)
{
$pakhuis[hout] = $max_pakhuis;
}
if($pakhuis[klei] > $max_pakhuis)
{
$pakhuis[klei] = $max_pakhuis;
}
if($pakhuis[ijzer] > $max_pakhuis)
{
$pakhuis[ijzer] = $max_pakhuis;
}
if($pakhuis[graan] > $max_pakhuis)
{
$pakhuis[graan] = $max_pakhuis;
}
if($pakhuis[goud] > $max_schatkamer)
{
$pakhuis[goud] = $max_schatkamer;
}
?>
<html>
<head>
<meta http-equiv="refresh" content="60"/>
<script type="text/javascript">
var c_hout=<?php echo $pakhuis[hout]; ?>;
var m_hout=<?php echo $milliseconde[hout]; ?>;
var c_klei=<?php echo $pakhuis[klei]; ?>;
var m_klei=<?php echo $milliseconde[klei]; ?>;
var c_ijzer=<?php echo $pakhuis[ijzer]; ?>;
var m_ijzer=<?php echo $milliseconde[ijzer]; ?>;
var c_graan=<?php echo $pakhuis[graan]; ?>;
var m_graan=<?php echo $milliseconde[graan]; ?>;
var c_goud=<?php echo $pakhuis[goud]; ?>;
var m_goud=<?php echo $milliseconde[goud]; ?>;
var max_pakhuis=<?php echo $max_pakhuis; ?>;
var max_schatkamer=<?php echo $max_schatkamer; ?>;
var t;
var timer_is_on=0;
function timedCount_hout()
{
document.getElementById('hout').innerHTML=c_hout;
if(c_hout < max_pakhuis)
{
c_hout=c_hout+1;
}
t=setTimeout("timedCount_hout()",m_hout);
}
function timedCount_klei()
{
document.getElementById('klei').innerHTML=c_klei;
if(c_klei < max_pakhuis)
{
c_klei=c_klei+1;
}
t=setTimeout("timedCount_klei()",m_klei);
}
function timedCount_ijzer()
{
document.getElementById('ijzer').innerHTML=c_ijzer;
if(c_ijzer < max_pakhuis)
{
c_ijzer=c_ijzer+1;
}
t=setTimeout("timedCount_ijzer()",m_ijzer);
}
function timedCount_goud()
{
document.getElementById('goud').innerHTML=c_goud;
if(c_goud < max_schatkamer)
{
c_goud=c_goud+1;
}
t=setTimeout("timedCount_goud()",m_goud);
}
<?php
if($milliseconde[graan] >= 0)
{
?>
function timedCount_graan()
{
document.getElementById('graan').innerHTML=c_graan;
if(c_graan < max_pakhuis)
{
c_graan=c_graan+1;
}
t=setTimeout("timedCount_graan()",m_graan);
}
<?php
}
else
{
$milliseconde[graan] = ($milliseconde[graan] * -1);
?>
var m_graan=<?php echo $milliseconde[graan]; ?>;
function timedCount_graan()
{
document.getElementById('graan').innerHTML = c_graan;
c_graan=c_graan-1;
t=setTimeout("timedCount_graan()",m_graan);
}
<?php
}
?>
function doTimer()
{
if (!timer_is_on)
{
timer_is_on=1;
timedCount_hout();
timedCount_klei();
timedCount_ijzer();
timedCount_graan();
timedCount_goud();
}
}
</script>
</head>
<body onLoad="doTimer();">
<?php
echo '
<table><tr>
<td width="200">Hout: <span id="hout"></span>/'.$max_pakhuis.'</td>
<td width="200">Klei: <span id="klei"></span>/'.$max_pakhuis.'</td>
<td width="200">IJzer: <span id="ijzer"></span>/'.$max_pakhuis.'</td>
<td width="200">Graan: <span id="graan"></span>/'.$max_pakhuis.'</td>
<td width="200">Goud: <span id="goud"></span>/'.$max_schatkamer.'</td>
</tr></table>
</body>
</html>
';
$_SESSION[hout][pakhuis] = $pakhuis[hout];
$_SESSION[klei][pakhuis] = $pakhuis[klei];
$_SESSION[ijzer][pakhuis] = $pakhuis[ijzer];
$_SESSION[graan][pakhuis] = $pakhuis[graan];
$_SESSION[goud][pakhuis] = $pakhuis[goud];
//print_r($_SESSION)
?>
klok.php:
<script type="text/javascript">
var timer = 2400;
var x;
var timer_is_on=0;
function timedCount()
{
if(timer >= 0)
document.getElementById('klok').innerHTML=timer;
var uren = Math.floor(timer / 3600); <!-- 1200 / 3600 = 0 -->
var minuten_voor = (timer - (3600 * uren)) / 60; <!-- (1200 - (0)) / 60 = 20 -->
var minuten = Math.floor(minuten_voor);
var seconden = timer - (3600 * uren) - (60 * minuten);
document.getElementById('uren').innerHTML=uren;
document.getElementById('minuten').innerHTML=minuten;
document.getElementById('seconden').innerHTML=seconden;
timer = timer - 1;
x=setTimeout("timedCount()",1000);
}
function doTimer()
{
if (!timer_is_on)
{
timer_is_on=1;
timedCount();
}
}
</script>
<body onLoad="doTimer();">
<td width="200">Goud: <span id="klok"></span></td>
<td width="200">Uren: <span id="uren"></span></td>
<td width="200">Minuten: <span id="minuten"></span></td>
<td width="200">Seconden: <span id="seconden"></span></td>
</body>
Beide pagina's werken, alleen wil ik deze twee scripts op 1 pagina weergeven. Als ik test.php zo invul:
<?php
include('grondstoffen.php');
include('klok.php');
?>
Werkt grondstoffen niet, maar de klok wel. Ik weet dat beide functies dezelfde naam hebben, maar zelfs als ik deze verander heeft dit geen effect. Heeft iemand enig idee wat ik fout doe?
Thomas