Ragazzi mi sapete dire cosa c'è che non va in questo codice?
Succede che se aggiorno la pagina mi stampa un doppione di ciò che hos critto prima nel form..
Esempio..se scrivo qualcosa e poi aggiorno la pagina mi mostro il doppione di ciò che ho scritto prima..cio' però accade solo la prima volta che faccio il refresh..infatti se dopo continuo a refreshare i doppioni rimangono sempre 2...
questo e il codice
codice:
// funzione per la chiamata dell'oggetto XMLHttpRequest
function ajax(){
var ajaxRequest;
try{
// controllo per i browser diversi da IE
ajaxRequest = new XMLHttpRequest();
}catch (e){
// contorollo per IE
try{
ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
}catch (e){
try{
ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
}catch (e){
// controllo per i browser che non supportano l'XMLHttpRequest
alert("Il browser non supporta questo ShoutBox");
return false;
}
}
}
return ajaxRequest;
}
// funzione per il salvataggio dei dati
function salva(){
htmlRequest = ajax();
if (htmlRequest==null){
alert ("Il browser non supporta richieste HTTP");
return;
}
// controlliamo i parametri obbligatori
if(document.form_invio.nick.value == "" || document.form_invio.nick.value == "NULL" || document.form_invio.testo.value == "" || document.form_invio.testo.value == "NULL")
{
alert('Inserisci sia il Nick che il testo');
return;
}
// inviamo i parametri al file per l'INSERT nel database
htmlRequest.open('POST', 'invia.php');
htmlRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
htmlRequest.send('nick='+document.form_invio.nick.value+'&testo='+document.form_invio.testo.value+'&sito_web='+document.form_invio.sito_web.value);
// svuotiamo il modulo per il messaggio
document.form_invio.testo.value = '';
document.form_invio.testo.focus();
}
// funzione per mostrare i dati
function mostra() {
htmlRequest = ajax();
// controllo nel caso in cui non possa richiamato l'oggetto Xmlhttp
if (htmlRequest==null){
alert ("Il browser non supporta richieste HTTP");
return;
}
htmlRequest.onreadystatechange = function(){
// Restituisce lo stato della richiesta
if(htmlRequest.readyState == 4){
// Restituice il corpo della risposta come stringa
document.getElementById("modulo").innerHTML = htmlRequest.responseText;
}
}
// chiamata della pagina PHP che estrae i records
htmlRequest.open("GET", "mostra.php", true);
htmlRequest.send(null);
}
// chiamata alla funzione
mostra();
// intevallo per l'aggiornamento della pagina
setInterval("mostra()",1000);