Autor | Zpráva | ||
---|---|---|---|
Legáček Profil |
#1 · Zasláno: 14. 1. 2011, 00:40:35
Zdravim, chtěl bych vás poprosit o radu. Já vim, že tu bylo už asi 1000 krát, ale prostě né a né mi to fungovat a už se stim trápím nějakou tu dobu.
<script language="JavaScript" type="text/javascript"> function goto_page(page) { xmlhttp=GetXmlHttpObject(); if (xmlhttp==null) { alert ("Your browser does not support AJAX!"); return; } var url="shoutbox_1.php"; url=url+"?page="+page; xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 || xmlhttp.readyState=="complete") { document.getElementById('shoutbox_txt').innerHTML=xmlhttp.responseText; } } xmlhttp.open("GET",url,true); xmlhttp.send(null); } function GetXmlHttpObject() { var xmlhttp=null; try { // Firefox, Opera 8.0+, Safari xmlhttp=new XMLHttpRequest(); } catch (e) { // Internet Explorer try { xmlhttp=new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } } return xmlhttp; } xmlHttp.onreadystatechange=function(){ function refreshIt(divID, MyPage) { setTimeout('GetXmlHttpObject()', 2000); document.getElementById(#divID).innerHTML=xmlHttp.responseText; } xmlHttp.open("GET",#MyPage,true); xmlHttp.send(null); } </script> tady je html <div id="shoutbox"> <form method="post"> <table cellspacing="1"> <tr> <td><textarea name="area" cols="28"></textarea></td> </tr> <tr> <td style="float:right;"><input type="submit" value="Odeslat" name="submit" onClick="refreshIt(shoutbox_txt, 'shoutbox.php')" /></td> </tr> </table> </form> <div id="shoutbox_txt"> ........ </div> </div> Javascript nemám rád, ale co se dá dělat někdy se použít musí. Jde o to že když zmáčknu sumbit, tak div shoutbox_txt se refreshne. Děkuji za všechny rady. |
||
Chamurappi Profil |
#2 · Zasláno: 14. 1. 2011, 00:52:39
Reaguji na Legáčka:
1) Chceš-li volat funkci refreshIt , nesmíš ji mít jako lokální uvnitř jiné funkce.
2) Řetězce se píší do uvozovek. (Řádek 8 v HTML.) 3) Před názvy proměnných se nepíší mřížky. Jak jsi na to přišel? (Řádky 39 a 41 v JS.) 4) Pokud onclick neskončí na return false , vykoná se standardní odeslání formuláře.
4) Máš to celé nějaké… zmatené. Smaž z JS vše kromě funkce GetXmlHttpObject (tedy řádky 2 až 18 a 36 až 43) a přidej novou funkci refreshIt :
function refreshIt(divID, MyPage) { var xmlHttp = GetXmlHttpObject(); if(!xmlHttp) return false; xmlHttp.open("GET", MyPage, true); xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState != 4) return; document.getElementById(divID).innerHTML = xmlhttp.responseText; } xmlHttp.send(null); return true; } A ten čudlík uprav: <input … onClick="return !refreshIt('shoutbox_txt', 'shoutbox.php')"> |
||
Legáček Profil |
#3 · Zasláno: 14. 1. 2011, 09:44:15 · Upravil/a: Legáček
Děkuji moc za rady.
- řádek 8 jsem upravil; - radíte mi abych smazal řádky 2-16, jenže těmito řádky dělám stránkování chatu a nejde to prostě smazat. Tak co by jste mi prosim poradil na zkloubení těchto dvou věcí? - zmatené to mám protože JS moc nerozumím a snažím se zkoušet různé věci, proto tam mám i mřížky před proměnými. Někde jsem to viděl v příkladu, tak jsem to tak zkusil. PS: Teď jsem to zkoušel upravit celý přesně jak mi tu píšeš a stejně mi to nejde :( proste se ten div(shoutbox_txt) kde je chat nerefreshne při zmáčknutí submitu :( |
||
Časová prodleva: 15 let
|
0