Ver Mensaje Individual
  #3 (permalink)  
Antiguo 22/06/2012, 07:51
Avatar de Lerolero
Lerolero
 
Fecha de Ingreso: junio-2012
Mensajes: 18
Antigüedad: 11 años, 11 meses
Puntos: 0
Respuesta: Checkbox con sesiones y paginado

Esto lo he agregado de acuerdo a lo que vi en este link --->"http://www.forosdelweb.com/f18/guardando-checkbox-marcados-lista-paginada-388346/"

Código PHP:
Ver original
  1. if(isset($_SESSION['correocorporacion'])){ //Si esta definida la sesión
  2.     $correos = $_SESSION['correocorporacion'];
  3.     /*Si esta definido y tiene un valor distinto a null*/
  4.     if(isset($_POST['correocorporacion']) && !empty($_POST['correocorporacion'])){
  5.         $temporal = $_POST['correocorporacion']; //Se crea una variable temporal igual a los datos del checkbox
  6.         /*Si esta definido y tiene un valor distinto a null*/
  7.         if(isset($_SESSION['marcado']) && !empty($_SESSION['marcado'])){
  8.          /* Se escoge la opcion que estaba marcada y ya no esta*/
  9.             $NoMarcado = array_diff_assoc($_SESSION['marcado'], $temporal);
  10.             foreach($NoMarcado as $key => $valor){
  11.                  if(isset($correos[$valor]))
  12.                     unset($correos[$valor]); //Se eliminan los checkbox que ya no estan marcados
  13.             }
  14.             unset($NoMarcado);
  15.             unset($_SESSION['marcado']);
  16.         }
  17.         foreach($temporal as $key => $valor)
  18.             $correos[$valor] = $valor;
  19.         unset($temporal);
  20.     }else{ //Si no se pasan variables por post, no hay checkbox marcadoss en la ultima página
  21.         if(isset($_SESSION['marcado']) && !empty($_SESSION['marcado'])){
  22.             $NoMarcado = $_SESSION['marcado']; //Se escogen todas las opciones que estaban marcadas
  23.             foreach($NoMarcado as $key => $valor){
  24.                  if(isset($correos[$valor]))
  25.                     unset($correos[$valor]); //Se eliminan los checkbox que ya no estan marcados
  26.             }
  27.             unset($NoMarcado);
  28.             unset($_SESSION['marcado']);
  29.         }
  30.     }
  31.     $_SESSION['correocorporacion'] = $correos;
  32. }else{ //Si no existe no hay checkbox marcados  
  33.     if(isset($_POST['correocorporacion']) && !empty($_POST['correocorporacion'])){
  34.         $temporal = $_POST['correocorporacion'];
  35.         foreach($temporal as $key => $valor)
  36.             $correos[$valor] = $valor;
  37.         unset($temporal);
  38.     }
  39.    $_SESSION['correocorporacion'] = $correos;
  40. }

y en la parte del formulario:

Código PHP:
Ver original
  1. while($row = mysql_fetch_array($result)) {
  2.                      echo'<tr><td>'.$row['cne_nombre'].' '.$row['cne_apellido'].'</td>';
  3.                      
  4.                      /*agregadooooooooooooooooo*/
  5.                      $marcado = array();
  6.                      print_r($marcado); /*Aca pienso que hay error*/
  7.                      
  8.                     if ($row['cne_email_corporacion'] == "")
  9.                     {
  10.                         echo '<td align="center" >*****</td>';
  11.                     }
  12.                     else
  13.                     {
  14.                   echo '<td><input type="checkbox" name="correocorporacion[]"
  15.                       value="'.$row['cne_email_corporacion'].'"'.((isset($correos[$row['cne_email_corporacion']]))? '  checked': '').'>'.$row['cne_email_corporacion'].'</td> ';
  16.                     if(isset($correos[$row['cne_email_corporacion']]))
  17.                     $marcado[$row['cne_email_corporacion']] = $row['cne_email_corporacion'];
  18.                 }
  19.                    
  20.                         if ($row['cne_email_personal'] == "")
  21.                     {
  22.                         echo '<td align="center" >*****</td>';
  23.                     }
  24.                     else
  25.                     {
  26.                 echo'<td><input type="checkbox" name="correopersonal[]"
  27.                       value="'.$row['cne_email_personal'].'"/>'.$row['cne_email_personal'].'</td></tr>';
  28.                     }
  29.                    
  30.                            }
  31.                            
  32.                            /*********Agregado************/
  33.                            if(!empty($marcado)) $_SESSION['marcado'] = $marcado;
  34.                             /*********************/

Me saca que la variable $correo no esta definida ......No se en que me pueda esta equivocando