Se trata de unos checkbox donde guardo un PATH de un archivo de manera que 'filepath'.'/'.'filename' todo esto concatenado es el value del checkbox.
Las variables de session las controlo asi:
Código PHP:
//...
session_start();
if(isset($_SESSION['listadoCanciones'])){ //Si existe ...
$listadoCanciones = $_SESSION['listadoCanciones'];
if(isset($_POST['listadoCanciones']) && !empty($_POST['listadoCanciones'])){
$temp = $_POST['listadoCanciones'];
foreach($temp as $key => $valor)
$listadoCanciones[FixTextFields(getid3_lib::SafeStripSlashes($valor))] = FixTextFields(getid3_lib::SafeStripSlashes($valor));
unset($temp);
}
$_SESSION['listadoCanciones'] = $listadoCanciones;
}else{ //Si no existe ...
if(isset($_POST['listadoCanciones']) && !empty($_POST['listadoCanciones'])){
$temp = $_POST['listadoCanciones'];
foreach($temp as $key => $valor)
$listadoCanciones[FixTextFields(getid3_lib::SafeStripSlashes($valor))] = FixTextFields(getid3_lib::SafeStripSlashes($valor));
unset($temp);
}
$_SESSION['listadoCanciones'] = $listadoCanciones;
}
//...
(FixTextFields y SafeStripSlashes son funciones para poder ver correctamente caracteres estraños)
De manera que cuando llego a los checkbox solo tengo que mirar si en la matriz $listadoCanciones esta la clave que busco o no:
asi por ejemplo:
Código PHP:
// ... bucle que recorre el mysql_fetch_array() devolviendo las tuplas seleccionadas
for ($i=0; $row = @mysql_fetch_array($result);$i++){
echo '<tr>';
echo '<td align="right"><span class="letra_estandard">';//Checkbox para la seleccion de canciones
echo '<input type="checkbox" name="listadoCanciones[]" value="'.urlencode($row['filepath'].'/').urlencode($row['filename']).'" title="'.FixTextFields(getid3_lib::SafeStripSlashes($row['filepath'].'/'.$row['filename'])).'" onfocus="this.style.border=\'1px solid #f00\'" onblur="this.style.border=\'1px solid #bbb\'"'.((isset($listadoCanciones[FixTextFields(getid3_lib::SafeStripSlashes($row['filepath'].'/'.$row['filename']))])) ? ' checked' : '').'>';
echo '</span></td>';
//... mas campos y finaliza el bucle
echo '</tr>';
}
Cuando cambio de pagina a la pagina siguiente le paso por post los checkbox seleccionados, pero no le paso los checkbox no seleccionados.
No se me ocurre que hacer, seguramente tenga que cambiar la manera como paso la informacion de los checkbox. Que opinais??