Kleine Vragen Topic #4

Gestart doorOne2xs1.965 reacties23.994 weergaven

1.966 berichten · pagina 34 van 132

Berichten
13.482
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
In je javascript staat data(timestamp), maar het data-attribuut heb je data-time genoemd, dus het moet data(time) zijn.
0
One2xs

Bot · Topicstarter

Berichten
93.699
Reputatie
0
Punten
1,27
Lid sinds
Laatst gezien
Lennard schreef:
Eerdere citaten tonen
Jessee schreef:
Je kan de hele chat vervangen (wat kut is en meer werk voor dom)
Of je kan alleen nieuwe berichten returnen in data.
Wat je doet is, bij die get geef je timestamp mee van laatste bericht in de chatbox.
Alle berichten daarboven returnt ie dan in data en dat append je dan. biggrinJe kunt beter met een ID werken of met een timestamp - 1 seconde, anders kom je in de knoei als er 2 berichten op 1 timestamp zijn verstuurd en er maar 1 naar de client is verzonden.
Ja true inderdaad, ids zijn ook oplopend. En wél uniek.
Good catch smile
0
Berichten
3.532
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
JS:

setInterval(function () {
    var timestamp = $(#meldingen div:last).data(time);
    $.get("includes/show-meldingen.php", { timestamp: timestamp }, function (data) {

        $("#meldingen").append(data);//insert the new messages into a div in your html

    });
}, 3000);


HTML:

<div data-time="[COLOR= #0000BB]<?php[/COLOR] [URL="http://www.php.net/echo"]echo[/URL] [COLOR= #0000BB]$fetchMeldingen[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]timestamp[/COLOR][COLOR= #007700]];[/COLOR] ?>"></div>


PHP

$getMeldingen = $db->query("SELECT * FROM meldingen WHERE timestamp > ".$db->real_escape_string($_GET[timestamp])." ORDER BY timestamp DESC LIMIT 10");
while($fetchMeldingen = $getMeldingen->fetch_array()){


Er gebeurt iets heel raars. ik wacht 3 seconden
Dan komt:
ID 5 komt 4x
ID 4 komt 3x
ID 2 komt 2x
ID 1 komt 1x

in meldingen div
0
One2xs

Bot · Topicstarter

Berichten
93.699
Reputatie
0
Punten
1,27
Lid sinds
Laatst gezien
Bouw het eerst even om naar id zoals @lennard zei. smile
0
Berichten
3.532
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Jessee schreef:
Bouw het eerst even om naar id zoals @lennard zei. smile
Oke heb ik gedaan? Nu krijg ik nog steeds het zelfde zoals 1 reactie boven deze van mij

Klopt dit?

$getMeldingen = $db->query("SELECT * FROM meldingen WHERE id > ".$db->real_escape_string($_GET[id])." ORDER BY timestamp DESC LIMIT 10");
while($fetchMeldingen = $getMeldingen->fetch_array()){
0
One2xs

Bot · Topicstarter

Berichten
93.699
Reputatie
0
Punten
1,27
Lid sinds
Laatst gezien
ja, al kan je ook order by id doen. Is iets beter imo.

toevoeging op 22 mei 2015, 15:29:57:
doe eens console log (var) id. Krijg je dan goede id mee?
0
Berichten
3.532
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Jessee schreef:
ja, al kan je ook order by id doen. Is iets beter imo.
toevoeging op 22 mei 2015, 15:29:57:
doe eens console log (var) id. Krijg je dan goede id mee?

ik krijg daar de goede IDs ja
eerst undefined
dan 5, 4, 2, 1 die kloppen
Wat is er met undefined?
0
Berichten
13.482
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Als er nog geen berichten zijn, dan is er ook geen timestamp
0
Berichten
3.532
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Sjoerd schreef:
Als er nog geen berichten zijn, dan is er ook geen timestamp
Het werkt als ik DESC weg haal bij ORDER BY id

Hoe kan ik de nieuwste bovenaan doen? zonder desc
0
One2xs

Bot · Topicstarter

Berichten
93.699
Reputatie
0
Punten
1,27
Lid sinds
Laatst gezien
het moet eerst undefined zijn en dan oplopen. Dus 1, 2, 4, 5 niet 5, 4, 2, 1
0
Berichten
3.532
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Jessee schreef:
het moet eerst undefined zijn en dan oplopen. Dus 1, 2, 4, 5 niet 5, 4, 2, 1
Dat had ik uitgevonden door DESC weg te halen, nu komen de nieuwste meldingen onderaan, die moeten bovenaan staan
0
One2xs

Bot · Topicstarter

Berichten
93.699
Reputatie
0
Punten
1,27
Lid sinds
Laatst gezien
prepend?

toevoeging op 22 mei 2015, 15:49:00:
huh nee je moet gewoon desk doen.
Je moet alleen in javascript kijken of hij echt de laatste id ophaalt.
0
Berichten
3.532
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Jessee schreef:
prepend?
toevoeging op 22 mei 2015, 15:49:00:
huh nee je moet gewoon desk doen.
Je moet alleen in javascript kijken of hij echt de laatste id ophaalt.

Als ik desc doe dan krijg ik heel veel duplicates van meldingen
bij console.log(id)
komt er in deze volgorde:
Undefined 1,2,4,5,6
0
Berichten
13.482
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Als je het nieuwste bericht bovenin zet, moet je ook het id van het eerste kind in #messages gebruiken ipv de laatste.

Hoe ziet je while-block er trouwens uit? show-meldingen.php haalt max. 10 berichten op uit de database, maar als ik zo naar je console logs kijk, lijkt het erop dat hij er maar eentje terugstuurt..
0
One2xs

Bot · Topicstarter

Berichten
93.699
Reputatie
0
Punten
1,27
Lid sinds
Laatst gezien
in die while moet je alle berichte in een array zetten $array[] = $whileItem;
en dan als de while klaar is moet je die array json_encoden en dat echoen
0

Jouw reactie

Deel je idee, stel een vraag of help een ander verder.

Editor laden…

Praat mee met de One2xs-community.

Inloggen om te reageren