Ciao ragazzi, nuovamente a chiedervi una mano
Ho un problema con uno script che funziona tutto per benino ma mi servirebbe un reload dopo la chiamata ajax post.
Potrei farlo temporizzando ma ho provato, è brutto perchè la pagina riparte dall’header.
uno script php aggiorna mysql e mette a disposizione dei campi da affittare
delle checkbox permettono di selezionare gli orari liberi.
cliccando la checkbox prescelta esegue la chiamata ajax, questa rimanda a somma.php
che aggiorna il db e prenota l’orario, tutto funziona senza problemi.
il mio problema è che dopo l’aggiornamento dovrei eseguire un reload per poter rileggere il db e impostare su impegnato l’orario appena scelto.
Cosa che fà se eseguo F5, ma è brutto dovrebbe essere automatico dopo l’aggiornamento.
Mi potete dire se è possibile un reload dopo la chiamata?
Posto la parte interessata.
codice:
<script language="javascript">
sport='';
idcampo='';
ora1='';
ora2='';
giorno='';
prezzo ='';
function cliccato(quale)
{
s =quale.value;
if (quale.checked)
{
var dati = s.split("-");
myVar=confirm("Stai prenotando per :\n" +
dati[0] +" campo numero " +dati[1] +"\n" +
"per il giorno " + dati[4] + " dalle ore "+dati[2] +
" alle ore "+dati[3] +" al prezzo di €. "+dati[5]+ "\n\n Confermi ?");
if(myVar=="0")
{
document.theForm.scelto.disabled = true;
}else{
if(document.getElementById) {
sport = document.getElementById("sport").value ;
idcampo = document.getElementById("idcampo" ).value ;
ora1 = document.getElementById("ora1").value ;
ora2 = document.getElementById("ora2").value ;
giorno = document.getElementById("giorno").value ;
prezzo = document.getElementById("prezzo").value ;
}
document.getElementById("sport").value= dati[0] ;
document.getElementById("idcampo").value= dati[1] ;
document.getElementById("ora1").value= dati[2];
document.getElementById("ora2").value= dati[3] ;
document.getElementById("giorno").value= dati[4] ;
document.getElementById("prezzo").value= dati[5] ;
}
}
if(myVar>0)
{
inviaXHR(obj,"somma.php");
}
}
</script>
<script>
function istanzaXHR() {
var obj;
if (window.XMLHttpRequest) { // Non Internet Explorer
obj = new XMLHttpRequest();
} else if (window.ActiveXObject) { // Internet Explorer
obj = new ActiveXObject("Microsoft.XMLHTTP");
}
return obj;
}
obj=istanzaXHR();
function onStateChange() { // Cambiamento Stato
if (obj.readyState == 4) { // Caricamento Avvenuto
if (obj.status == 200) { // con successo
document.getElementById("risultato").innerHTML=obj.responseText; // risultato
} else {
document.getElementById("risultato").innerHTML="nessuna scelta valida.";
alert("Errore: "+obj.statusText);
}
}
}
function inviaXHR(obj,url) {
try {
obj.open("POST", url, true); // apro la comunicazione
document.getElementById("risultato").innerHTML="...";
obj.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
obj.onreadystatechange = onStateChange;
ora1=escape(document.theForm.ora1.value);
ora2=escape(document.theForm.ora2.value);
giorno=escape(document.theForm.giorno.value);
idcampo=escape(document.theForm.idcampo.value);
sport=escape(document.theForm.sport.value);
prezzo=escape(document.theForm.prezzo.value);
obj.send("idcampo="+idcampo+"&ora1="+ora1+"&ora2="+ora2+"&sport="+sport+"&giorno="+giorno+"&prezzo="+prezzo); // Trasferimento dati a somma.php per aggiornare mysql.
} catch (e) {
document.getElementById("risultato").innerHTML=" Nessuna scelta valida!";
alert("Errore: "+e);
}
}
</script>