Ciao, come dice VPlaza Ajax, asynchronous javascript and xml, ti permette di fare chiamate al server side e salvataggi senza dover ricaricare la pagina, però dobbiamo precisare alcuni punti:
Io utente, inserisco i dati in un form, perfetto, clicco il bottone SALVA SU DB, e senza ricaricare la pagina chiamo il DB e salvo i dati sul DB perfetto, se vado sul DB, il DB è già aggiornato senza che la pagina web abbia dovuto ricaricarsi(fondamentalmente è questa la dinamica del 2.0) ma dobbiamo però sempre fare una precisazione quando devo LEGGERE i dati e mostrarli sul web, abbiamo comunque necessità di fare la query di select aggiornata a quel preciso istante, quindi se io ho una tabella sul web che mi mostra i dati del DB, nel salvataggio, senza ricaricare la pagina, il DB si aggiorna ma in lettura e quindi nella tabella sul web avrò necessità di ricaricare la pagina O MEGLIO di rieffettuare la query di select per mostrare la tabella aggiornata(ovviamente).
Adesso il punto è il seguente, quando fai la chiamata al server con Ajax, il server risponde in maniera aggiornata e senza ricaricare la pagina ma lo devi comunque inserire in tabella nell'html.
La soluzione al tuo caso cioè riaggiornare la tabella senza ricaricare la pagina è molto semplice ed è la seguente:
La funzione sotto Ajax fa una chiamata al server il server risponde con la tabella aggiornata, cioè nel PHP creo le righe le td le th tutta la tabella, il success della chiamata non fa altro che appendere il risultato in un DIV, io ti metto tutto il codice di select e la chiamta come faccio, la soluzione comunque è inserire il risultato della chiamata(CIOE' TUTTA LA TABELLA )in un DIV, io faccio questo ad un click di un bottone e mostro la tabella sotto il bottone, tu metterai un setTimeout ogni 10 minuti fai la chiamata.
Codice:
function visualizzaPermessi(){
var utente = $('#InserisciUtente').val();
$.ajax({
type: "POST",
url: "../index.php?azione=permessi",
dataType: "html",
data:{utente : utente},
success:function(data){
response = data.replace(/(\r\n|\n|\r)/gm,"");
//alert(response);
if (response.length>0){
var risultati = response.split('|');
if (risultati[0] == '00'){
$('#visualizzaPermessi').html(risultati[1]);
}
if (risultati[0] == '99'){
$('#contenutoPermessi').html(risultati[1]);
$('#modalPermessi').modal('show');
//$('#dialogPermessi').dialog('open').html(risultati[1]);
}
}
},
error:function(data){
alert('Errore di comunicazione con il Server');
}
});
}
La funzione sotto viene chiamata al click del bottone cioè dalla funzione visualizzaPermessi, il codice PHP crea una tabella con i dati e la inserisce in una RISPOSTA[1], cioè printa tutta la tabella Ajax riceve la risposta se il codice è 00 cioè tutto ok e prende tutta la risposta(che è la tabella) e l'appende al div visualizzaPermessi..
Codice PHP:
public function permessi(){
utilsController::securityAjaxCall();
//require_once "view/template.php";
ob_start();
$utenteGet = $_POST['utente'];
$classe = "";
//Apriamo il Db phpMyAdmin
$db = new connessione();
$db = $db->apriConnessione();
//Controllo che ci sia l'Utente in tabella
$sqlUtente = 'SELECT * FROM TABLE WHERE utente = \''.
mysqli_real_escape_string($db, $utenteGet).'\'';
$risultatoUtente = mysqli_query($db, $sqlUtente);
$righe = $risultatoUtente->num_rows;
if ($righe == '0'){
$msg = '99';
$msg .= '|';
$msg .= "L'utente non esiste!";
print $msg;
exit;
}
if (isset($_POST['utente'])){
$response = '00';
$response .= "|";
$html = new Tpl("view/html/TabellaPermessiTestata.html");
$html -> setTplVar(array(
));
$html -> processTpl();
$response .= $html-> returnTpl2();
$sql = $db->prepare("SELECT * FROM TABLE WHERE utente = ? ");
$sql->bind_param('s', $utenteGet);
$esecuzione = $sql->execute();
$righe = $sql->bind_result($id,$Utente, $Mese, $OrePermesso);
while ($sql->fetch()){
//$classe = "info";
if ($classe == "info"){
$classe = "active";
}
else{
$classe="info";
}
$html = new Tpl("view/html/TabellaPermessiRiga.html");
$html -> setTplVar(array(
"Utente" => $Utente,
"Mese" => $Mese,
"OrePermesso" => $OrePermesso,
"classe" => $classe
));
$html -> processTpl();
$response .= $html -> returnTpl2();
ob_flush();
}
$response = str_replace("\n", "", $response);
$response = str_replace("\r", "", $response);
print $response;
print "</tbody></table></fieldset>";
}
}
Se posti il codice vedo di darti una mano...Ciao