Ver Mensaje Individual
  #9 (permalink)  
Antiguo 19/02/2014, 12:41
yakrum
 
Fecha de Ingreso: febrero-2014
Ubicación: España
Mensajes: 19
Antigüedad: 11 años
Puntos: 0
Respuesta: Añadir atributo checked a un checkbox dinamicamente

Y por ultimo tengo el 'editar_excursiones', que como expliqué al abrir este topic, contiene un formulario que se rellena con los valores guardados en la base de datos y permite modificarlos. La particularidad que tiene es que recibe y escribe los datos en las 2 tablas 'sitios' y 'excursiones'.
Este es su codigo:
Código PHP:
Ver original
  1. <?php
  2. include("pages/seguridad.php");
  3. include("pages/conexion.php");
  4. ?>
  5. <h2>EDITAR EXCURSION</h2>  
  6. <?php include("pages/menu_gestor.php");
  7. //Se muestran los campos guardados en la db y si no se tocan se volverán a mandar los mismos
  8. if(isset($_POST["boton"])){ $id=$_POST["id"];
  9.                             $denominacion=$_POST["denominacion"];
  10.                             $dir_calle=$_POST["dir_calle"];
  11.                             $dir_num=$_POST["dir_num"];
  12.                             $dir_piso=$_POST["dir_piso"];
  13.                             $dir_letra=$_POST["dir_letra"];
  14.                             $dir_cp=$_POST["dir_cp"];
  15.                             $localidad=$_POST["localidad"];
  16.                             $provincia=$_POST["provincia"];
  17.                             $contacto=$_POST["contacto"];
  18.                             $tlf_contacto=$_POST["tlf_contacto"];
  19.                             $correo=$_POST["correo"];
  20.                             $coordenadasGPS=$_POST["coordenadasGPS"];
  21.                             $observaciones=$_POST["observaciones"];
  22.                             $link_foto=$_POST["link_foto"];
  23.                             $puntuacion=$_POST["puntuacion"];
  24.                             $tipo=$_POST["tipo"];
  25.                             $trans_publico=$_POST["trans_publico"];
  26.                             $agua_potable=$_POST["agua_potable"];
  27.                             $aseos=$_POST["aseos"];                        
  28.    
  29. $sql="UPDATE sitios SET denominacion='$denominacion', dir_calle='$dir_calle', dir_num='$dir_num', dir_piso='$dir_piso', dir_letra='$dir_letra', dir_cp='$dir_cp', localidad='$localidad', provincia='$provincia', contacto='$contacto', tlf_contacto='$tlf_contacto', correo='$correo', coordenadasGPS='$coordenadasGPS', observaciones='$observaciones', link_foto='$link_foto', puntuacion='$puntuacion', tipo='$tipo' WHERE idSitios=$id";
  30. $res=mysql_query($sql,$conexion); //ahora actualizaremos la consulta:
  31.  
  32. $sql2="UPDATE excursiones SET trans_publico='$trans_publico', agua_potable='$agua_potable', aseos='$aseos' WHERE idSitios=$id";
  33. $res2=mysql_query($sql2,$conexion); //ahora actualizaremos la consulta:
  34.  
  35.     if(($res)&&($res2)){echo "Datos actualizados correctamente.<br/><a href='index.php?p=detalle_excursiones&id=".$_POST['id']."'>Seguir viendo la ficha</a>";
  36.         }else{echo "Error en la actualizacion, revise los datos de nuevo.";}
  37.         //a partir de aquí es cuando todavía no se le ha dado al botón, me recojo el id del hidden de abajo,q también es el del UPDATE...WHRE idcontactos..
  38.         }else{$id=$_GET["id"];
  39.     $sql="SELECT * FROM sitios WHERE idSitios=$id";      
  40.     $sql2="SELECT * FROM excursiones WHERE idSitios=$id";
  41.       $consulta=mysql_query($sql,$conexion);
  42.         $registro=mysql_fetch_array($consulta);
  43.       $consulta2=mysql_query($sql2,$conexion);   
  44.         $registro2=mysql_fetch_array($consulta2);
  45. ?>
  46.     <form method="post" action="index.php?p=editar_excursiones">
  47.         <label>Nombre:</label><br/>
  48.             <input type="text" name="denominacion" value="<?php echo $registro["denominacion"];?>"/><br/>
  49.         <label>Calle:</label><br/>
  50.             <input type="text" name="dir_calle" value="<?php echo $registro["dir_calle"];?>"/><br/>
  51.         <label>Numero:</label><br/>
  52.             <input type="text" name="dir_num" value="<?php echo $registro["dir_num"];?>"/><br/>
  53.         <label>Piso:</label><br/>
  54.             <input type="text" name="dir_piso" value="<?php echo $registro["dir_piso"];?>"/><br/>
  55.         <label>Letra:</label><br/>
  56.             <input type="text" name="dir_letra" value="<?php echo $registro["dir_letra"];?>"/><br/>
  57.         <label>C.P:</label><br/>
  58.             <input type="text" name="dir_cp" value="<?php echo $registro["dir_cp"];?>"/><br/>
  59.         <label>Localidad</label><br/>
  60.             <input type="text" name="localidad" value="<?php echo $registro["localidad"];?>"/><br/>
  61.         <label>Provincia</label><br/>
  62.             <input type="text" name="provincia" value="<?php echo $registro["provincia"];?>"/><br/>
  63.         <label>Contacto:</label><br/>
  64.             <input type="text" name="contacto" value="<?php echo $registro["contacto"];?>"/><br/>
  65.         <label>Telefono contacto:</label><br/>
  66.             <input type="text" name="tlf_contacto" value="<?php echo $registro["tlf_contacto"];?>"/><br/>
  67.         <label>Correo:</label><br/>
  68.             <input type="text" name="correo" value="<?php echo $registro["correo"];?>"/><br/>
  69.         <label>Coordenadas GPS:</label><br/>
  70.             <input type="text" name="coordenadasGPS" value="<?php echo $registro["coordenadasGPS"];?>"/><br/>
  71.         <label>Observaciones:</label><br/>
  72.             <input type="textarea" cols="40" rows="3" name="observaciones" value="<?php echo $registro["observaciones"];?>"/><br/>
  73.         <label>Foto:</label><br/>
  74.             <input type="text" name="link_foto" value="<?php echo $registro["link_foto"];?>"/><br/>
  75.         <label>Puntuacion */10:</label><br/>
  76.             <input type="text" name="puntuacion" value="<?php echo $registro["puntuacion"];?>"/><br/>  
  77.         <label>Tipo de Sitio:</label><br/>
  78.             <input type="text" name="tipo" readonly="readonly" value="<?php echo $registro["tipo"];?>"/><br/><br />        
  79.     <!--segunda consulta-->
  80.         <label>¿Se puede llegar con transporte p&uacute;blico?</label><!--hay que cambiar el array $registro por $registro2 ya que ese array es el que guarda la segunda consulta que contiene estos valores -->
  81.             <input type="checkbox" name="trans_publico" value="1"<?php echo (isset($trans_publico))?'checked="checked"':(($registro2['trans_publico'])?'checked="checked"':'');?>><br />
  82.         <label>¿Hay agua potable?</label>
  83.             <input type="checkbox" name="agua_potable" value="1"<?php echo (isset($agua_potable))?'checked="checked"':(($registro2['agua_potable'])?'checked="checked"':'');?>><br />
  84.         <label>¿Hay aseos p&uacute;blicos?</label>
  85.             <input type="checkbox" name="aseos" value="1"<?php echo (isset($aseos))?'checked="checked"':(($registro2['aseos'])?'checked="checked"':'');?>><br /><br />
  86.         <input type="hidden" name="id" value="<?php echo $id;?>"/><!--me mando el id oculto,será obligatorio para la consulta para actualizar el q sea en concreto no todos-->
  87.         <input type="submit" name="boton" value="Editar"/><!--al darle al botón el id que me mando es el de POST de arriba-->
  88.     </form>
  89. <?php  
  90.     }
  91. ?>
  92. <br/>
  93. <a href='index.php?p=excursiones'>Volver al listado</a>

Pongo todo esto para ver si alguien me orienta/ayuda a resolver el error que tengo ahora mismo (ya solucioné que me salieran marcados los checkboxes correctamente), el error que tengo es este:

Si al editar un registro desmarco un chekbox para que la base de datos almacene un '0' en ese campo, me vuelve a dar el error:
Código PHP:
Ver original
  1. Notice: Undefined index: trans_publico
  2. Notice: Undefined index: agua_potable
  3. Notice: Undefined index: aseos
Dependiendo de qué chekboxes estén desmarcados...pero en la base de datos SÍ almacena el '0' correspondiente.

Qué estoy haciendo erroneamente?