Hallo,

Is het ook mogelijk gegevens uit een database te halen (MySQL) en die te gebruiken in een Javascript? Ik wil namelijk een klok die aftelt van 15:00 naar 0 pauzeren door in de database pauze te zetten en dan weer op play. Dit moet bij 2 klokken tegelijk en ik weet geen andere oplossing.

Alvast bedankt, Maurits
Hoi,

Je kan dit net zo behandelen als een query waarvan je de gegevens ophaalt en in html weergeeft. Zeker aangezien JS client-side-scripting is.

<?php
$sql = "SELECT status FROM klok";
$db->query($sql);
$array = $db->fetch();
?>
<script>
var klok = "<?php echo $array['status']; ?>";
alert(klok);
</script>


zoiets?
Rik, het is niet handig om een script te geven waarin je een klasse gebruikt om je database verkeer af te handelen. Allereerst zal de topicstarter niet de beschikking hebben over deze klasse en bovendien klopt je script ook niet. Je instantieert je klasse nergens...

@Maurits: zoals koko al zegt kun je die informatie gewoon uit de database uitlezen en als variabele gebruiken in je javascript...
Heej,

Ik heb nu dit:
<?php
$clock_result = mysql_query("SELECT clock FROM matches WHERE id = '".$_GET['match_id']."'");
$clock = mysql_fetch_array($clock_result);
?>
<script type="text/javascript">
var int = 10; // Zet hier je Variabele neer of het aantal SECONDEN

function aftellen()
{
if($clock['clock'] == 'play')
{
var inter = int;

var uren = inter / 3600;
var uur = Math.floor(uren);

var gehad = uur * 3600;
var moetnog = inter - gehad;

var minuten = moetnog / 60;
var mins = Math.floor(minuten);
if (mins < 10) mins = '0'+mins;

var gehadmin = mins * 60;
var moetnog2 = moetnog - gehadmin;
var secs = moetnog2;
if (secs < 10) secs = '0'+secs;

if(inter <= 0)
{
mins = 'Eindstand';
secs = '';
einde = 'Wedstrijd afsluiten';
document.getElementById('minuten').innerHTML = mins+':';
document.getElementById('seconden').innerHTML = secs;
document.getElementById('einde').innerHTML = einde;

}
else
{
int = inter - 1;
einde = '';
document.getElementById('minuten').innerHTML = mins+'&nbsp;'+':';
document.getElementById('seconden').innerHTML = secs;
document.getElementById('einde').innerHTML = einde;
}
setTimeout('aftellen();' , 1000);
}
}
</script>

Ga er maar vanuit dat die aanroep naar de database er ook nog bij zit en dat ie goed is.

In de body staat dit: <span id=minuten></span> <span id=seconden></span>
<script type=text/javascript>
aftellen();
</script>

Maar het werkt nog niet?:S

Kunnen jullie zeggen waar de fout zit?
Maurits schreef op 17.07.2007 17:37
Maar het werkt nog niet?:S
Kunnen jullie zeggen waar de fout zit?

Ik houd niet echt van "zoek-de-fout", wat werkt niet?
Je gebruikt php en javascript door elkaar, dat kan natuurlijk niet. Ofwel je bent in het werk in php, dan moet je alle javascript dus echoen. Ofwel je bent niet in php, je kunt gewoon javascript typen maar natuurlijk geen php variabelen gebruiken.
Blanche schreef op 17.07.2007 17:07
Rik, het is niet handig om een script te geven waarin je een klasse gebruikt om je database verkeer af te handelen. Allereerst zal de topicstarter niet de beschikking hebben over deze klasse en bovendien klopt je script ook niet. Je instantieert je klasse nergens...

@Maurits: zoals koko al zegt kun je die informatie gewoon uit de database uitlezen en als variabele gebruiken in je javascript...


ging er eigenlijk vanuit dat de TS het stukje om info uit de db al wel had en het was korter...
Ik heb nu if(<? echo $clock['clock']; ?> == 'play') maar dan kijk ik in de broncode zoals die wordt gegeven door mijn browser en dan staat er if(play == 'play') :S
Waarom wil je dit met een database linken? Kan je het iets werder uitleeggen, mijn eerste reactie zou namelijk zijn om het compleet client-side te doen.
Nou zoals je in het start bericht kon lezen moet ik twee klokken tegelijkertijd in twee schermen bedienen.

Reageren