webForumDet fria alternativet

kolla efter nya meddelande utan siduppdatering?

JavaScriptur Javascript

53 svar · 2 991 visningar · startad av vagann · sida 3 av 3

Frågan, av vagann

hej , jag ville göra så att sidan visar om man har ett nytt meddelande utan att användaren behöver uppdatera sidan... så jag kom fram till var check; function checkForMessages() { $.get("/page.php", function($newpmsql) { if($newpmsql >= 1) { clearTimeout(check); alert("nytt meddelande!"); } } } setInterval(checkForMessages, 60

Läs frågan i sin helhet →
Medlem sedan juli 2011171 inlägg
#41

varför det ? jag har ju

include('pages/config.php');

och jag har alltid haft rättigheter till databasen och det har fungrerat..
bör jag ha

include('pages/config.php');

i ajax.php?

Medlem sedan juni 20019 519 inlägg
#42

Ja, det behöver du.... Är ju rätt självklart

Medlem sedan juli 2011171 inlägg
#43

har redan testat att ha med

include('pages/config.php');

i ajax.php.... men då blir det bara en vita sida av nån anledning

Medlem sedan juni 20019 519 inlägg
#44

hur ser hela ajax.php filen ut då? Du har aldrig bifogat hela filen... är ju i princip omöjligt att säga vad du gör fel. men ett problem som jag ser är att du aldrig skriver ut något ifrån din php kod, du spara bara undan dom i variabler. ajax.php känner inte till något ifrån någon annan variabel från dina andra sidor (om det inte är sessionsvariabler). din php fil som du kör mot ajax måste retunera något som den kan presentera, om det är ett JSON, html, xml, text spelar ingen roll, men den kan inte bara köra php kod utan att returnera något (om du nu inte vill presentera något).

Mitt råd är att lär dig hur serverkod fungera och sen kan du börja med klientkod.

men för att lösa ditt problem något sådär så kan du ju skapa ajax2.php som inkludera include('pages/config.php'); och din ajax.php fil och sen kör du en echo mot din variabel $newpm

Medlem sedan juli 2011171 inlägg
#45

joo , det var allt från ajax.php eftersom jag vill att sidan ska kolla om det finns nya pm varje 6 sekunder, så det är enda som behöver vara i ajax.php ( pm sql queries).... sedan i page.php har jag $newpm för att skriva ut värdet för antal meddelande..

förstod inte det med ajax2.php som endast innehåller include('pages/config.php'); , kan jag inte bara ha det tillsammans med pm sql queries

Medlem sedan juni 20019 519 inlägg
#46

ajax.php retunera absolut inget... så vad vill du presentera ifrån den? du spara bara ner resultatet i en variabel (php variabel) som javascript ALDRIG kan komma åt. därför om du skapa en fil som 1. kör din sql fråga och 2. skriver ut din variabel som en text så är du mer eller mindre klar.

sedan i page.php har jag $newpm för att skriva ut värdet för antal meddelande..

Ja, men det har ju inget med ditt AJAX anrop till ajax.php att göra, ajax.php ajax anropet kommer retunera vad ajax.php retunera.... vilket inte retunera något som kan presenteras... du gör bara din SQL anrop men ge aldrig något tillbaka från servern som gå att presentera. Därför hade det varit bättre att ha en helt egen sida som kan presentera det ajax.php generera, om den heter ajax2.php eller något vettigare namn spelar ingen roll så länge det är den filen som AJAX anropet gå till.

En annan sak, så kan du ju använda dig av SQL COUNT() så slipper du räknar rader (och kommer bli betydligt snabbare än att hämta alla olästa inlägg rad per rad.

Medlem sedan juli 2011171 inlägg
#47

jaha , nu har jag gjort såhär att jag la till

echo $newpm

vilket har nu retunerat värdet 0, vilket är bra .... men nu har det blivit så att hela #userbar försvinner så fort det retunerar värdet. strukturen i body.php verkar vara bra

    <div id="userbar"><script type="text/javascript">
var checkForMessages = function() {
	$.get("/ajax.php", function(data) {
		$("#userbar").html(data);
		check = setTimeout(checkForMessages, 6000);
	});
};
var check = setTimeout(checkForMessages, 6000);
</script><?php echo $page_userbar; ?></div>
Medlem sedan juni 20019 519 inlägg
#48

vagann skrev:

jaha , nu har jag gjort såhär att jag la till

echo $newpm

vilket har nu retunerat värdet 0, vilket är bra ....

Läs hela mitt inlägg, varför du bör ha en helt egen sida för ajax anropet och en som behåller den funktion du har idag (även om man borde se över hela koden och göra den något mer generell kanske).

Medlem sedan juli 2011171 inlägg
#49

jag har inte en helt sidan bara för anropet utan har anropet i html strukturen där den bör visas och sedan har jag lagt funktionen i ajax.php för att har jag det i page.php då laddas page.php flera gånger in i andra filer som tex profile.php, jag vill att det endast laddar funktionen

Medlem sedan juni 20019 519 inlägg
#50

Då måste varje fil vara helt självständiga... Och returnera det du vill presentera med AJAX.

Medlem sedan juli 2011171 inlägg
#51

det är ju självständiga eller hur menar du, det jag returnera är värdet från funktionen i ajax.php med hjälp med ajax och det funkar bra , hittills är det som jag vill ha det men saken är att den resrätter länk listan $page_userbar , jag att den endast lägger till värdet till $page_userbar

Medlem sedan juni 20019 519 inlägg
#52

Och hur skall ett klientspråk som JavaScript hitta en server variabel som PHP skapat utan att du ha en fil som skriver ut den till något javascript kan presentera?

Medlem sedan juli 2011171 inlägg
#53

kan visa med koder ? vore underbart

Medlem sedan juni 20019 519 inlägg
#54

vagann skrev:

kan visa med koder ? vore underbart

voigtann1 skrev:

men för att lösa ditt problem något sådär så kan du ju skapa ajax2.php som inkludera include('pages/config.php'); och din ajax.php fil och sen kör du en echo mot din variabel $newpm

du måste få ut $newpm från servern till klienten för att kunna presentera den.

eller så ser du att jquery ajax (och andra ramverk skickar med en header HTTP_X_REQUESTED_WITH med värdet xmlhttprequest som du skulle kolla på, om den är med så skall du köra echo $newpm annars inte i din ajax.php fil.

142 ms totalt · 3 externa anrop · v20260731065814-full.55e59744
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
138 ms — hämta tråd, inlägg och bilagor (db)