Buongiorno a tutti....ho un problema e non riesco a trovare una soluzione per risolverlo.
Avete qualche idea?
Il problema è il seguente:
In una pagina php ho una tabella con paginazione che funziona correttamente mostrando 10 record per pagina. Sopra la tabella c'è una parte dedicata alla ricerca in tabella, cioè l'utente può inserire un codice o una descrizione e nella tabella sottostante vengono visualizzati soltanto i risultati richiesti (anche questo funziona in maniera corretta).
Nella tabella che mostra i risultati la prima colonna è formata da checkbox in modo da consentire all'utente di poter selezionare più righe.
Il mio problema sta nel fatto che quando l'untente seleziona un record nella prima pagina, quando si sposta alla seconda pagina (della paginazione) non mantiene la selezione fatta in precedenza. Non so se mi sono spiegata bene.
Lo stesso accade quando l'utente fa la ricerca. Una volta visualizzati i risultati della ricerca lui seleziona alcune checkbox, se poi fa un'altra ricerca non vengono mantenute le checkbox selezionate in precedenza.
Spero di essermi spiegata....cmq ora vi posto anche il codice della pagina:
Codice PHP:
<?php
require "include/paginazioneNEW.inc.php";
session_start();
$stato=$_SESSION['stato']; //variabile inizialmente settata a FALSE serve per vedere se le variabili di ricerca in tabella sono state settate o no.
echo("<table>");
echo("<form action='modifica_dettaglio2.php' method='GET'>"); //modifica_dettaglio2.php è il nome di questa pagina
echo("<tr><td colspan='2'>Filtro interrograzione</td></tr>");
echo("<tr><td>Codice Quesito</td>");
echo("<td>Descrizione</td>");
echo("</tr>");
echo("<tr><td><input type='text' maxlength='5' name='cq' width='500'></td>");
echo("<td><input type='text' maxlength='50' name='dq' width='500'></td>");
echo("</tr>");
echo("<tr><td colspan='2'><input class='bottone' type='submit' value='Effettua ricerca'></td></tr>");
echo("<tr><td colspan='2'><input class='bottone' type='submit' value='Ripristina contenuto' onClick=\"location.href='modifica_dettaglio2.php?cq=&dq='\"></td></tr></form>");
echo("</table>");
//variabili per la ricerca nella pagina
If(isSet($_GET['cq'])||isSet($_GET['dq'])){
if(isSet($_GET['cq']) && !isSet($_GET['dq'])){
$cq=str_replace(" ", "",strtoupper($_GET['cq']));
$_SESSION['cq']=$cq;
$dq='';
$_SESSION['dq']=$dq;
$stato='TRUE';
$_SESSION['stato']=$stato;
}
if(isSet($_GET['dq']) && !isSet($_GET['cq'])){
$dq=strtoupper($_GET['dq']);
$_SESSION['dq']=$dq;
$cq='';
$_SESSION['cq']=$cq;
$stato='TRUE';
$_SESSION['stato']=$stato;
}
if(isSet($_GET['dq']) && isSet($_GET['cq'])){
$dq=strtoupper($_GET['dq']);
$_$cq=str_replace(" ", "",strtoupper($_GET['cq']));
$_SESSION['cq']=$cq;
$stato='TRUE';
$_SESSION['stato']=$stato;
}
//parte di codice relativo alla paginazione
$page = (!isset($_GET['page']))? 1 : $_GET['page'];
$conto=oci_parse($con,"select count(*)
from xxx
where cod like '$cq%' and des like '$dq%'");
oci_execute($conto);
while($riga=oci_fetch_array($conto, OCI_ASSOC)){
foreach ($riga as $pippo){
}
}
$max_results = 10;//numero di elementi da visualizzare per pagina.
$total_results = $pippo;
$total_pages = ceil($total_results / $max_results);
$from = (($page * $max_results) - $max_results);
$a= ($max_results * $page);
$query_r=oci_parse($con,"select r, c1, c2
from(select rownum r, cod c1, des c2
from xxx
where cod like '$cq%' and des like '$dq%'
and rownum <= $a)
where r > $from");
oci_execute($query_r);
}else{
if($stato='TRUE'){
$cq=$_SESSION['cq'];
$dq=$_SESSION['dq'];
//parte di codice relativo alla paginazione
$page = (!isset($_GET['page']))? 1 : $_GET['page'];
$conto=oci_parse($con,"select count(*)
from xxx
where cod like '$cq%' and des like '$dq%'");
oci_execute($conto);
while($riga=oci_fetch_array($conto, OCI_ASSOC)){
foreach ($riga as $pippo){
}
}
$max_results = 10;//numero di elementi da visualizzare per pagina.
$total_results = $pippo;
$total_pages = ceil($total_results / $max_results);
$from = (($page * $max_results) - $max_results);
$a= ($max_results * $page);
$query_r=oci_parse($con,"select r, c1, c2
from(select rownum r, cod c1, des c2
from xxx
where cod like '$cq%' and
des like '$dq%' and
rownum <= $a)
where r > $from");
oci_execute($query_r);
}else{
//parte di codice relativo alla paginazione
$page = (!isset($_GET['page']))? 1 : $_GET['page'];
$conto=oci_parse($con,"select count(*)
from xxx");
oci_execute($conto);
while($riga=oci_fetch_array($conto, OCI_ASSOC)){
foreach ($riga as $pippo){
}
}
$max_results = 10;//numero di elementi da visualizzare per pagina.
$total_results = $pippo;
$total_pages = ceil($total_results / $max_results);
$from = (($page * $max_results) - $max_results);
$a= ($max_results * $page);
$query_r=oci_parse($con,"select r, c1, c2
from(select rownum r, cod c1, des c2
from xxx
where rownum <= $a)
where r > $from");
oci_execute($query_r);
}
}
echo("<tr>");
echo("<td align='center'>Seleziona</td>");
echo("<td align='center'>Codice Quesito</td>");
echo("<td align='center'>Descrizione Quesito</td>");
echo("</tr></thead>");
echo("<form action='effettua_modifica.php' method='POST'>"); //i valori checcati vanno alla pagina effettua_modifica.php
while($riga=oci_fetch_array($query_r, OCI_NUM + OCI_RETURN_NULLS)){
echo("<tr>");
echo("<td align='center'><input name='que' type='checkbox' value='$riga[1]'/></td>");
echo("<td align='center'>".$riga[1]."</td>");
echo("<td align='center'>".$riga[2]."</td>");
echo("</tr>");
}
echo("<tr><td colspan='3'>".pagination_4($total_pages, $page)."</td></tr>");
echo("<tr><td colspan='3'><input class='bottone' type='submit' value='Conferma modifica' style=\"cursor:pointer;cursor:hand;\"></td></tr>");
echo("</form>");
echo("</table>");
?>
Help!!!!