Jeżeli chodzi o AJAXa i łączenie się z serwerem "za kurtyną" to z pomocją książek napisałem taką funkcję i jej używam.
Kod JS:
Kopiuj
var ds_post; // adres pliku z którym ma się połączyć np "./plik.php" lub "http://adres.pl/plik.php"
var divid_post; // ID DIV-u lub innego znacznika HTML
var vars_post; // dane jakie mają być wysłane metodą POST
function gd_post(ds_post, divid_post, vars_post)
{
var xhml_post = false;
if(window.XMLHttpRequest)
{
xhml_post = new XMLHttpRequest();
} else if(window.ActiveXObiect)
{
xhml_post = new ActiveXObject('Microsoft.XMLHTTP');
}
if(xhml_post)
{
var obj_post = document.getElementById(divid_post);
xhml_post.open("POST", ds_post);
xhml_post.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xhml_post.onreadystatechange = function()
{
if(xhml_post.readyState==4&&xhml_post.status==200)
{
obj_post.innerHTML = xhml_post.responseText;
delete xhml_post;
xhml_post = null;
}
}
xhml_post.send(vars_post);
}
}
W praktyce będzie wyglądało to np.:
Kod PHP:
Kopiuj
// Pomijam znaczniki META HEAD itp
<script src='plik_z_powyzszym_kodem.js' language='JavaScript'>
var interval1;
interval1 = setInterval(function() { gd_post('plik.php', 'online_users', 'dane=jd&online_users');}, 1000);
</script>
<?php echo "Witaj, kliknij na link aby zobaczyć treść newsa:<br>
<a href=\"#\" onclick=\"gd_post('plik.php', 'div', 'a=0&b=1&name=Imię'); return false;\">To jest ten link</a>
<br>
<div id='div'></div>
<br>
Użytkownicy online:<div id='online_users'>0</div>
?>";
Powyższy kod wyświetla teść newsa po kliknięciu na link i co sekundę aktualizuje DIV z liczbą urzytkowników online. I to wszystko bez odświetzania strony.
Jeżeli chciałbyś aby ajax "wpisywał" Ci coś do znacznika np <input type="text" id="inp">
to piszesz podobną funkcje js z tym, że zamiast "obj_post.innerHTML = xhml_post.responseText;"
piszesz "obj_post.value = xhml_post.responseText;".
U mnie działa baz zarzutów, cały czas z tego korzystam.