Salve a tutti ho problema...cercherò di essere più dettagliato possibile...
Allora io ho 1 pagina chiamata
-arrivi.php
In questa pagina estraggo dei record da un database mysql e li inserisco in una tabella per mostrarli a video. In seguito tramite questo FORM
<form method="post" onsubmit="return ValidaCheckbox();">
<input type="submit" id="submit" name="submit" value="Arrivati"/>
invio i dati ad un altra pagina:
-controlloarrivi.php
che inserirà i dati nel database e restituirà l'output dell'inserimento.
Per evitare doppi inserimenti nel database, a causa di up/refresh/back, utilizzo un token
FIN QUI TUTTO OK
A capo delle due pagine ho un index che include arrivi.php e controlloarrivi.php (COMMENTATA)
session_start(); //AVVIO SESSIONE
if (isset($_POST['submit']))
{
if($_SESSION['user_token'] == $_POST['user_token']) { // QUANDO VIENE PREMUTO IL TASTO SUBMIT E IL TOKEN RISULTA VALIDO
unset($_SESSION['user_token']); //CANCELLO VECCHIA SESSIONE
include_once('./script/token.php'); //CREO TOKEN PER LA SECONDA SESSIONE
include_once('./arrivi.php'); //RICARICO ARRIVI.PHP
include_once('./script/controlloarrivi.php'); //OUTPUT DEL PRIMO INSERIMENTO
} else {
header("location: ./index.php"); //ALTRIMENTI QUANDO IL TOKEN RISULTA SCADUTO RICARICA LA PRIMA PAGINA
}
} else{
include_once('./script/token.php'); //CREA TOKEN PER LA PRIMA SESSIONE
include_once('./arrivi.php'); //MOSTRA LA TABELLA CON IL FORM E IL TASTO SUBMIT
}
TUTTO FUNZIONA!
Però ho un problema: Ogni volta che premo il tasto submit, arrivi.php, non viene ricaricato e di conseguenza, nella tabella a video, restano ancora i record che sono già stati processati da controlloarrivi.php e che quindi non dovrebbero più comparire.
Leggendo un po in giro, per ricaricare parzialmente una pagina, dovrei usare jquery/ajax
Allora ho provato in questa maniera:
session_start();
if (isset($_POST['submit']))
{
if($_SESSION['user_token'] == $_POST['user_token']) {
unset($_SESSION['user_token']);
include_once('./script/token.php');
?>
<div id="div"></div>
<?php
include_once('./script/controlloarrivi.php');
} else {
header("location: ./2.php");
}
} else{
include_once('./script/token.php');
include_once('./arrivi.php');
}
?>
<script>
$(function(){
$("#div").load("arrivi.php");
});
</script>
Ed ho risolto in parte.... adesso, al primo submit, la tabella viene ricaricata egregiamente ed ottengo l'output da controlloarrivi.php! Mentre la seconda volta che premo il tasto submit per poter effettuare una nuova operazione (senza aver aggiornato la pagina) scompare l'output del primo inserimento e purtroppo non avviene il nuovo inserimento (ovviamente non compare nemmeno il nuovo output).
Come potrei fare per far si che ciò avvenga? Se avete soluzioni alternative (ad esempio tramite iframe o altro) sono ben accette.
In sostanza ciò che vorrei ottenere è il risultato dell'inserimento nella stessa pagina evitando doppi inserimenti e che si possa continuare lo stesso lavoro (semplice check di checkbox con submit) senza dover aggiornare la pagina.
Grazie