Ingen längre, provade koden och fick felmeddelande direkt om att metoden aldrig avslutas.
Meddelande
Minska
No announcement yet.
kolla efter nya meddelande utan siduppdatering?
Minska
X
-
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
Kommentera
-
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?"det går inte att lära en gammal norrlänning byta namn på irc" - gammalt kinesiskt uttryck
Kommentera
-
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.
PHP-kod:$str = "Hello world!";
echo $str;
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.
PHP-kod:$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;
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.Det är inte farten som dödar, det är smällen!
Och nu på engelska:
It aint the fart that kills, it's the smell!
Kommentera
-
voigtann här är html kodenKod:<head> <meta name="keywords" content="" /> <meta name="description" content="" /> <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" /> <title>test </title> <link href="styles/snowglass/style.css" rel="stylesheet" type="text/css" media="screen" /> <script src="http://code.jquery.com/jquery-1.7.2.min.js"></script> <script type="text/javascript"> var checkForMessages = function() { $.get("/page.php", function(data) { $("#userbar").html(data); check = setTimeout(checkForMessages, 6000); }); }; var check = setTimeout(checkForMessages, 6000); </script> </head>
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
Kommentera
-
joo det sant , men jag ser inte hur javascript koden är kopplad till php kodenKod:var checkForMessages = function() { $.get("/page.php", function(data) { $("#userbar").html(data); check = setTimeout(checkForMessages, 6000); }); }; var check = setTimeout(checkForMessages, 6000);
Kommentera
-
[kod]men jag ser inte hur javascript koden är kopplad till php koden [/kod]Du skämtar där hoppas jag? det är ju $.get gör, den hämtar HTML/datan ifrån /get varje 6 sekund och stoppa in datan du få tillbaka in i #userbar
Så om /page.php ser ut:
[kod]<b>1000</b>[/kod] i HTML koden så är det vad data är i function(data)
Javascript har absolut ingen aning om vad PHP variabler har för värden
Mitt råd är:
ladda ner firefox + firebug
chrome
och kolla deras webbutvecklings verktyg för att se vad som händer på din sida. och hur ajax anropen körs och vad som retuneras."det går inte att lära en gammal norrlänning byta namn på irc" - gammalt kinesiskt uttryck
Kommentera
-
Ok så då är det inte echo det hänger på
PHP-kod:
//Osäker men måste inte $newpm deklareras eller vad det heter
$newpm = "";
$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;
exempel
<div id="userbar"></div>
Annars vet ju inte $("#userbar").html(data); vart datan ska skrivas ut.
HTML-kod:<head> <meta name="keywords" content="" /> <meta name="description" content="" /> <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" /> <title>test </title> <link href="styles/snowglass/style.css" rel="stylesheet" type="text/css" media="screen" /> <script src="http://code.jquery.com/jquery-1.7.2.min.js"></script> </head> <body> <div id="userbar"></div> <script type="text/javascript"> var checkForMessages = function() { $.get("/page.php", function(data) { $("#userbar").html(data); check = setTimeout(checkForMessages, 6000); }); }; var check = setTimeout(checkForMessages, 6000); </script> </body>
Det är inte farten som dödar, det är smällen!
Och nu på engelska:
It aint the fart that kills, it's the smell!
Kommentera
-
stattin skrev: Visa inläggTänk på att jquery.com kan ligga nere om man har otur så det är bättre att ha jquery i en egen js fil.
[kod]<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script>window.jQuery || document.write('<scr' + 'ipt src="/js/jquery-1.7.2.min.js"><\/scr' + 'ipt>')</script>
[/kod]"det går inte att lära en gammal norrlänning byta namn på irc" - gammalt kinesiskt uttryck
Kommentera
-
voigtann1 skrev: Visa inläggeller ännu bättre kör mot en cdn som google och kör en fallback på en lokal version av jquery:
[kod]<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script>window.jQuery || document.write('<scr' + 'ipt src="/js/jquery-1.7.2.min.js"><\/scr' + 'ipt>')</script>
[/kod]Det är inte farten som dödar, det är smällen!
Och nu på engelska:
It aint the fart that kills, it's the smell!
Kommentera
-
jag är säker på att det är ingen problem med php-koden , problemet är scripten göra sidan visar page.php med en annan php fil, tex om vi är nu på page.php?name=search (search.php)så visar sidan innehållet som finns i search.php men efter 6 sekunder så blandar sidan innehållet från search.php med page.php...jag till och med testade med att lägga scripten i body vilket är body.php i mitt fall
Kommentera
-
Det få du ju ange då. För skrifter hämtar all HTML data från servern och lägger in det i det block du har sagt, om du måste ha en querystring lägg in det.
Den kommer inte göra något annat än vad som står i JS filen."det går inte att lära en gammal norrlänning byta namn på irc" - gammalt kinesiskt uttryck
Kommentera
Kommentera