guarda ci sono parecchie guide sull'utilizzo di ajax. E' cmq del codice come javascript e metodi specifici per un certo tipo di funzionamento. In pratica ti da la possibilta' di eseguire query o comunque un ricaricamento parziale (o altre funzionalita' ) su una sola o piu' parti della pagina interessate senza ricaricare il tutto.
questo e' lo script javascritp/ajax che esegue appunto la chiamata asincrona:
Codice PHP:
function ahah(url,target,delay, function_extra, post){
var type = "GET";
if(window.XMLHttpRequest){
var req=new XMLHttpRequest();
}else if(window.ActiveXObject){
var req=new ActiveXObject("Microsoft.XMLHTTP");
}
if(req!=undefined){
if(post)
type = "POST";
req.open(type,url,true);
if(post){
req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
}
req.onreadystatechange=function(){
if(req.readyState!=4){
}else{
ahahDone(req, url,target,delay, function_extra);
}
};
req.send(post);
}
}
function ahahDone(req, url,target,delay, function_extra){
if(req.readyState==4)
{
if(req.status==200)
{
if(target)
{
document.getElementById(target).innerHTML='';
document.getElementById(target).innerHTML=req.responseText;
}
if (function_extra){
setTimeout(function_extra, 100);
}
}
}
}
Supponendo che nella tua pagina hai un <div> che contiene le select interessate, con onchange al posto di eseguire il submit del form, richiami ahah() passando come parametri (se in get) solo la url effettiva che esegue la ricerca e creazione delle select, e come secondo parametro l'id del div da ricaricare.
In questo modo viene eliminato innerHTML del div richiamato e rigenerato con quello crato nella pagina richiamata.
Es.: Il div interessato contiene "testo di prova", richiami ahah('cerca.php', 'idDiv'), a questo punto cerca.php esegue un echo 'new text'; Se tutto corretto vedrai senza alcun ricaricamento il nuovo testo nel div interessato.
PS se non l'hai mai usato sembrera' un casino ma e' piuttosto semlplice.. chiedi pure.