Du sätter ju aldrig variablen check till en timeout/interval, så att cleara den hjälper inte något, sen skall din /page.php retunera ett nummer (även om den kommer returnera en sträng).
Sen gillar jag inte setInterval... metoden kan ju ta mer än 6 sekunder att köra (även om det inte är i detta fallet)
Nu blandar du PHP och javascript. för det första så är PHP ett server språk och javascript är ett klientspråk för webbläsaren, $newpm måste skrivas ut på php sidan då javascript inte har någon som helst tillgång till några server variabler.
Nu känner jag att jag måste förklara lite hur jquery.get fungera:
i denna kod-block så är det function($newpm_sql) {} som är det callback block som kommer köras så fort ajax anropet har lyckats. Metoden har en parameter och det är den data som retuneras ifrån servern ( i ditt fall verkar det inte vara något då du inte har echo på $newpm, men vi säger att du har detta och då kommer $newpm_sql innehålla ' <b>(xxx)</b>' eller ''
Om vi har en HTML markup på sidan som ser ut som:
<div id="new_pm"></div> eller om du nu presentera $newpm från php (samma resultat som i din page.php)
ok tack för förklaringen, nu tror jag att jag fattar hur det går till .. och det är bara det , behöver inte lägga nåt mer i html strukturen , right?
går och testar den nu :D
jaha ok , det är ganska konstigt att min server ger inga felmeddelande.. men hur som helst så såg jag att funkade jsbin och jag har exakt samma koder men ett problem har uppstått att sidan anropar page.php i ett annat sida tex ...page.php?name=pm så vi kanske bör uppdatera utan att anropa ett specifikt file .
ps: jag tror att min server har bannat mig ,för att nå min hemsida måste jag använda proxy, jag ska fixa det, återkommer lite senare:)
Servern kan bara generera ett fel och det vid ajax anropet, men det är felaktig JS struktur så säger webbläsaren till att det är fel (de flesta webbläsare har en konsol/felkonsol)
vad få du för html kod när du besöker page.php direkt?
Får en känsla att det är echo som saknas, vi har varit inne på det här förut jag och Vagann.
Om du skriver PHP och du vill att något ska visas på sidan så måste du använda dig av echo.
$str = "Hello world!";
echo $str;
(Finns lite andra varianter också men det får du läsa om här.)
Samma sak gäller när du använder dig av ajax, skriv dina php script precis som vanligt, det som ska visas för användaren måste ekas (echo) ut helt enkelt.
Jag antar att det här INTE är hela PHP koden, MEN om det skulle vara det så skulle det räcka med ett lite echo $newpm längst ner.
$newpm_sql = mysql_query("SELECT `id` FROM `pm` WHERE `to` = '". $_SESSION['id'] ."' AND `status` = '0'") or die(mysql_error());
if (mysql_num_rows($newpm_sql) >= 1)
{ $newpm = ' <b>('. mysql_num_rows($newpm_sql) .')</b>'; }
else
{ $newpm = ''; }
echo $newpm;
Så skulle $newpm; matas ut på sidan och det kommer tillbaka till function(data).
Och beror det inte på detta så fortsätter vi felsökningen, men du får kanske visa mer av php koden, för ajax scriptet är ju i sin ordning.
stattin , jo det var hela php koden och jag använder mig redan av echo för att skriva ut antal meddelande men det som vi försöker göra här är att få antal meddelande att uppdatera sig utan siduppdatering.... just nu är det så att användaren måste uppdatera sidan (f5) för att antal meddelande ska också uppdateras
136 ms totalt · 3 externa anrop · v20260731065814-full.4bcf49fe