controle aantal berichten en melding na refresh
ik heb een mysql gebaseerde verzoekserver gemaakt deze draaid perfect
heb er een metta refresh opgezet van 1 minuut.
nu wil ik het eigenlijk zo maken dat hij voor en na de refresh kijkt
hoeveel berichten erin staan en als er een is bijgekomen het tabblad
gaat knipperen (net als bij msn) nu heb ik al een java scriptje maar
dat switcht alleen de titel en "nieuw verzoekje" en laat niet het tabblad knipperen.
mijn vragen: 1 hoe laat je hem checken of er een bericht is bijgekomen?
2 heb de ballen verstand van javascript en wie heeft er een scriptje dat
het tabblad laat knipperen
db-tabel: id, naam, artiest, titel, reactie, datum, tijd, ip
groeten joop
Toevoeging op 29/01/2013 18:43:42:
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
$result = mysql_query("SELECT * FROM vs");
$rows = mysql_num_rows($result);
sleep( 60 );
$Newrows = Mysql_num_rows(mysql_query("SELECT * FROM vs");
if ($newrows = $rows){ return true;}
else { header ("location: verzoekadmin.php?tabblink=1");
?>
$result = mysql_query("SELECT * FROM vs");
$rows = mysql_num_rows($result);
sleep( 60 );
$Newrows = Mysql_num_rows(mysql_query("SELECT * FROM vs");
if ($newrows = $rows){ return true;}
else { header ("location: verzoekadmin.php?tabblink=1");
?>
Dacht zelf zoiets maar weet niet zeker
= is toekennen van een waarde.
== is vergelijken.
=== is vergelijken en checken of het type hetzelfde is.
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
$result = mysql_query("SELECT * FROM vs");
$rows = mysql_num_rows($result);
sleep( 60 );
$Newrows = Mysql_num_rows(mysql_query("SELECT * FROM vs");
if ($newrows === $rows){ return true;}
else { header ("location: verzoekadmin.php?tabblink=1");}
?>
$result = mysql_query("SELECT * FROM vs");
$rows = mysql_num_rows($result);
sleep( 60 );
$Newrows = Mysql_num_rows(mysql_query("SELECT * FROM vs");
if ($newrows === $rows){ return true;}
else { header ("location: verzoekadmin.php?tabblink=1");}
?>
Idd === dan
Gewijzigd op 29/01/2013 20:43:03 door Joop Slabbekoorn
Probeer het eens uit zou ik zeggen.
Gewijzigd op 29/01/2013 20:42:00 door Joop Slabbekoorn
Vind je het dan gek dat ie er 60 seconden over doet? ;-)
Ga eens googlen op Javascipt/AJAX dan kan je gegevens opvragen zonder de pagina te verversen.
Als je dan ergens niet uitkomt horen we het wel.
vroeg me af af het op een of andere manier mogelijk was met php
later vanavond dacht ik zal het ff beetje toelichten met script erbij
maar ja sleep = en blijft sleep en geen "ga door met het script en
voer ddit stukje over 60 seconden uit" dat is wat ik nodig heb.
maar goed ga morgen ff aan de rommel met java alleen het probleem
is dat ik niet goed snap wat ie dan doet :-)
Joop Slabbekoorn op 29/01/2013 23:15:33:
klopt ger maar zei al heb de ballen verstand van java
Maar dat maakt niet uit, als je maar iets begrijpt van Javascript.
(en ik maak alleen maar de opmerking omdat ik verbijsterd ben door het feit dat je de derde bent vandaag....)
Erwin H op 29/01/2013 23:26:25:
Maar dat maakt niet uit, als je maar iets begrijpt van Javascript.
nee dus snap er niks van, denk dat ik het maar laat schieten. of iemand moet me op weg willen helpen?
Erwin H op 29/01/2013 23:26:25:
hoe bedoel je derde vandaag???(en ik maak alleen maar de opmerking omdat ik verbijsterd ben door het feit dat je de derde bent vandaag....)
Je bent de derde die niet begrijpt dat java !== javascript.
<head>
<title>verzoek server admin</title>
<link href="icon.png" rel="shortcut icon" type="image/x-icon" />
</head>
<script type="text/javascript">
<!--
var origTitle = document.title;
//snap ik var = $origTitle = document.title; spreekt voor zich
var hiliteTitle = "NIEUW VERZOEKJE!";
//snap ik ook = $hiliteTitle = "text";
var toggle = false;
//toggle is sluiten = false;
setInterval('wijzigTitel()', 500);
//interval voor functie wijzigtitel = 500 ms
function wijzigTitel()
//spreekt ook voor zich
{
document.title = toggle ? origTitle : hiliteTitle;
// ????????????????
toggle = !toggle;
// ????????????????
}
-->
</script>
<body>
</body>
</html>
oke maar wat is wat bijv. php: "mysql INSERT * INTO table" in javascript?
Gewijzigd op 29/01/2013 23:50:54 door Joop Slabbekoorn
Even wat betere uitleg:
Java is een programmeer taal.
JavaScript is een script taal.
Wat simpel gezegt op neer komt dat Java gecompileerd (soort van machine code) word.
Terwijl JavaScript gewone leesbare tekst blijft.
EDIT niet dat mijn javaSCRIPT zo denderend is kan ik je wel uitleggen wat die vraagtekens betekenen:
Code (php)
1
2
2
document.title = toggle ? origTitle : hiliteTitle; // dit is een modules true or false
toggle = !toggle; // de var toggle is niet gelijk aan toggle dus true
toggle = !toggle; // de var toggle is niet gelijk aan toggle dus true
EDIT 2
Quote:
oke maar wat is wat bijv. php: "mysql INSERT * INTO table" in javascript?
Dat doe je niet in javascript, maar dat regel je in php.
Je zal iets van een AJAX call moeten doen om dit te bereiken.
Helaas ben ik een luie javascripter dus kan je dat niet uitleggen in javascript zelf.
Gewijzigd op 29/01/2013 23:57:31 door Bart V B
heeeeeele verkeerde afkorting sorry!!!
Toevoeging op 30/01/2013 00:00:47:
Bart V B op 29/01/2013 23:50:36:
oke dus de eerste toggle is de var en het vraagteken is in princiepe de uitlees functie die in dit geval false geeft?
"Joop:
oke maar wat is wat bijv. php: "mysql INSERT * INTO table" in javascript?
oke maar wat is wat bijv. php: "mysql INSERT * INTO table" in javascript?
Niets. Dat kan namelijk helemaal niet. Php is een server side taal die op de server draait, javascript is een client side taal die in de browser draait. In de browser kan je geen direct gebruik maken van de database op de server. Een insert uitvoeren in javascript is dus onmogelijk.
Erwin H op 30/01/2013 00:01:02:
Niets. Dat kan namelijk helemaal niet. Php is een server side taal die op de server draait, javascript is een client side taal die in de browser draait. In de browser kan je geen direct gebruik maken van de database op de server. Een insert uitvoeren in javascript is dus onmogelijk.
"Joop:
oke maar wat is wat bijv. php: "mysql INSERT * INTO table" in javascript?
oke maar wat is wat bijv. php: "mysql INSERT * INTO table" in javascript?
Niets. Dat kan namelijk helemaal niet. Php is een server side taal die op de server draait, javascript is een client side taal die in de browser draait. In de browser kan je geen direct gebruik maken van de database op de server. Een insert uitvoeren in javascript is dus onmogelijk.
precies dus nu moet ik een mix van javascript om zonder te refreshen elke 60 seconden te checken via php of er een bericht bij is gekomen. pffffff nu word het leuk en hoe laat ik javascript dan php uitvoeren (zogezegd)
Een voorbeeld van autoloading met Jquery vind je hier:
http://www.jquery4u.com/tutorials/auto-refresh-div-content-jquery-ajax/
kan iemand mij helpen om het bovenstaande javascript alleen uit te voeren als tabblad niet actief is?
blur??? focus??? daar kom ik ff niet uit nu heb dit:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php
<script type='text/javascript'>
<!--
var origTitle = document.title;
var hiliteTitle = 'NIEUW VERZOEKJE!';
var toggle = false;
var toggle1 = true;
setInterval('wijzigTitel()', 500);
(window).focus
function wijzigTitel()
{
document.title = toggle1 ? origTitle : hiliteTitle;
toggle1 = !toggle;
}
(window).blur
function wijzigTitel()
{
document.title = toggle ? origTitle : hiliteTitle;
toggle = !toggle;
}
-->
</script>
?>
<script type='text/javascript'>
<!--
var origTitle = document.title;
var hiliteTitle = 'NIEUW VERZOEKJE!';
var toggle = false;
var toggle1 = true;
setInterval('wijzigTitel()', 500);
(window).focus
function wijzigTitel()
{
document.title = toggle1 ? origTitle : hiliteTitle;
toggle1 = !toggle;
}
(window).blur
function wijzigTitel()
{
document.title = toggle ? origTitle : hiliteTitle;
toggle = !toggle;
}
-->
</script>
?>
Toevoeging op 31/01/2013 01:12:01:
heb het bijna voor elkaar dit is wat ik gedaan heb:
aantalregels.txt aangemaakt -> chmod rechten gegeven -> php uitlezen aantalregels en weg laten schrijven in $aantal -> $aantal vergelijken met $numrows (aantal database regels) -> if {doe niks} else {het blink javascriptje} en daar achteraan $numrows weg laten schrijven in aantalregels.txt
werkt prima maar zou liever kijken of $aantal == $numrows +1 maar daar kom ik ff niet uit dus heb ik nu tijdelijk ook een weggschrijf scriptje aan het verwijderen geplakt (anders gaat hij uiteraard als je er een verwijderd ook zeggen nieuw bericht.
nadeel 1 is dat hij nu na een minuut niet meer knippert omdat ie dan weer gelijk is en wil eigenlijk niet de dj op een button laten klikken van "jaja ik heb het gezien"
nadeel 2 is dat hij ook echt een minuut knippert ook als je het na 10 seconden ziet
dus als er nog mensen zijn die bijvoorbeeld iets van een "tabblad is actief dus je mag uit" ideetje en iets van een "wacht met refreshen want tabblad is nog niet actief geweest na het nieuwe bericht" ideetje voor me hebben of bereid zijn een klein javascriptje voor me te maken heeeeeel graag!!!
groetjes joop
Gewijzigd op 30/01/2013 17:04:50 door Joop Slabbekoorn