Foros del Web » Programando para Internet » PHP »

Problema en formulario

Estas en el tema de Problema en formulario en el foro de PHP en Foros del Web. Buenas a todos, os pongo la parte importante del formulario y del codigo php: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original for ( $i = 1 ...
  #1 (permalink)  
Antiguo 01/12/2011, 16:48
Avatar de dmm84  
Fecha de Ingreso: marzo-2011
Mensajes: 164
Antigüedad: 13 años, 8 meses
Puntos: 13
Problema en formulario

Buenas a todos, os pongo la parte importante del formulario y del codigo php:

Código PHP:
Ver original
  1. for($i = 1; $i <= 5; $i++) {
  2.   $check = "check_b". $i;
  3.   if($_POST[$check] == "on") {
  4.     $sql = "Update botones Set Activado = '1' WHERE Num = '". $i ."' ;";
  5.     mysql_query($sql);
  6.   } else {
  7.     $sql = "Update botones Set Activado = '0' WHERE Num = '". $i ."' ;";
  8.     mysql_query($sql);  
  9.   }
  10. }

Código HTML:
Ver original
  1. <td><input type="checkbox" name="check_b1" /></td>
  2. <td><input type="checkbox" name="check_b2" /></td>
  3. <td><input type="checkbox" name="check_b3" /></td>
  4. <td><input type="checkbox" name="check_b4" /></td>
  5. <td><input type="checkbox" name="check_b5" /></td>

El problema es simple, me actualiza todo a 0 en vez de que los checkbox seleccionados se me actualicen a 1 y el resto a 0.
__________________
Mas vale un codigo que mil palabras
  #2 (permalink)  
Antiguo 01/12/2011, 16:53
Avatar de nicosli  
Fecha de Ingreso: junio-2009
Ubicación: Cancún, Quintana Roo, Mexico
Mensajes: 72
Antigüedad: 15 años, 5 meses
Puntos: 5
Respuesta: Problema en formulario

el name de los checkbox deben de tener el mismo nombre

Código HTML:
Ver original
  1. <td><input type="checkbox" name="check_b1" /></td>
  2. <td><input type="checkbox" name="check_b2" /></td>
  3. <td><input type="checkbox" name="check_b3" /></td>
  4. <td><input type="checkbox" name="check_b4" /></td>
  5. <td><input type="checkbox" name="check_b5" /></td>

name="check"

Código HTML:
Ver original
  1. <td><input type="checkbox" name="check" /></td>
  2. <td><input type="checkbox" name="check" /></td>
  3. <td><input type="checkbox" name="check" /></td>
  4. <td><input type="checkbox" name="check" /></td>
  5. <td><input type="checkbox" name="check" /></td>


edito...


no habia entendido bien


prueba con

Código PHP:
Ver original
  1. if($_POST[$check] == "true")
  #3 (permalink)  
Antiguo 01/12/2011, 17:05
Avatar de molig  
Fecha de Ingreso: septiembre-2006
Ubicación: Acapulco
Mensajes: 50
Antigüedad: 18 años, 1 mes
Puntos: 15
Respuesta: Problema en formulario

probe tu codigo con on, además probe con true como sugiere nicosli, probe tambien simplemente con if ($_POST[$check]) y funciono perfecto, no encontré ningún error, no tendras otro código antes que interfiera?
__________________
He aprendido que un hombre
sólo tiene derecho a mirar a otro hacia abajo,
cuando ha de ayudarle a levantarse.
GGM
  #4 (permalink)  
Antiguo 02/12/2011, 10:01
Avatar de dmm84  
Fecha de Ingreso: marzo-2011
Mensajes: 164
Antigüedad: 13 años, 8 meses
Puntos: 13
Respuesta: Problema en formulario

He continuado haciendo pruebas y he puesto despues de la consulta mysql: print $sql;
Ahora se que hace en cada momento, pero sigo con el mismo problema porque no me ha solucionado nada ese print, me muestra esto:

Código Texto:
Ver original
  1. Update botones Set Activado = '1' WHERE Num = '1' ;
  2. Update botones Set Activado = '1' WHERE Num = '2' ;
  3. Update botones Set Activado = '0' WHERE Num = '3' ;
  4. Update botones Set Activado = '0' WHERE Num = '4' ;
  5. Update botones Set Activado = '0' WHERE Num = '5' ;

Sigo con el problema de que absolutamente todo me lo pone a 0 en vez de lo que le corresponde a cada cosa. Ademas esta es la unica consulta mysql que hace referencia a esa tabla. Que comida de cabeza...
__________________
Mas vale un codigo que mil palabras
  #5 (permalink)  
Antiguo 02/12/2011, 10:22
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 9 meses
Puntos: 96
Respuesta: Problema en formulario

Saludos

Manejalo como un arreglo

Código PHP:
Ver original
  1. <form action="prueba.php" method="post">
  2.    <input type="checkbox" name="seleccion[]" value="1">
  3.    <input type="checkbox" name="seleccion[]" value="2">
  4.    <input type="checkbox" name="seleccion[]" value="3">
  5.     <input type="checkbox" name="seleccion[]" value="4">
  6.     <input type="checkbox" name="seleccion[]" value="5">
  7. <input type="submit" name="Submit" value="Enviar">

y luego solo hace el update de los que se hallan seleccionado

Código PHP:
Ver original
  1. foreach ($_POST['seleccion'] as $id){
  2.     echo  $sql = "Update botones Set Activado = '1' WHERE Num = '". $id ."' ;";
  3. }

Para mas información puedes revisar el siguiente FAQ Acá
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #6 (permalink)  
Antiguo 02/12/2011, 10:35
Avatar de dmm84  
Fecha de Ingreso: marzo-2011
Mensajes: 164
Antigüedad: 13 años, 8 meses
Puntos: 13
Respuesta: Problema en formulario

No me funciona ese codigo que me has puesto porque "Num" tiene valores del 1 al 5 en este caso pero podria aumentar ese rango.

He seguido investigando colocando die() poco a poco y, sorprendentemente, cuando quito una seccion HTML el codigo funciona , os pongo el codigo que interfiere:

Código HTML:
Ver original
  1. ......... die(); ?>
  2.                         </select></td>
  3.                     </tr>
  4.                     <tr>
  5.                         <td colspan="6"><br /><br /><center><b><u>- Personalizaci&oacute;n por imagen (max.: 200x50) -</u></b></center><br /><br /></td>
  6.                     </tr>
  7.                     <tr>
  8.                         <td width="100" height="30">Foto: </td>
  9.                         <td width="140" class="borde">&nbsp;<input type="file" name="arc_b1" style="width:155px;" size="4" /></td>
  10.                         <td width="140" class="borde">&nbsp;<input type="file" name="arc_b2" style="width:155px;" size="4" /></td>
  11.                         <td width="140" class="borde">&nbsp;<input type="file" name="arc_b3" style="width:155px;" size="4" /></td>
  12.                         <td width="140" class="borde">&nbsp;<input type="file" name="arc_b4" style="width:155px;" size="4" /></td>
  13.                         <td width="140" class="borde">&nbsp;<input type="file" name="arc_b5" style="width:155px;" size="4" /></td>
  14.                     </tr>
  15.                     <tr>
  16.                         <td width="100" height="30">Foto actual: </td>
  17.                         <td width="140" class="borde"><center><img src="" width="140" alt="*Error*" title="Boton personalizado 1" /></center></td>
  18.                         <td width="140" class="borde"><center><img src="" width="140" alt="*Error*" title="Boton personalizado 2" /></center></td>
  19.                         <td width="140" class="borde"><center><img src="" width="140" alt="*Error*" title="Boton personalizado 3" /></center></td>
  20.                         <td width="140" class="borde"><center><img src="" width="140" alt="*Error*" title="Boton personalizado 4" /></center></td>
  21.                         <td width="140" class="borde"><center><img src="" width="140" alt="*Error*" title="Boton personalizado 5" /></center></td>
  22.                     </tr>
  23.                 </table>
  24.                 <input type="submit" class="button medium black" value="Guardar botones" />
  25.                 </form>
  26.                 </center>
  27.                 </p>
  28.             </div>
  29.        
  30.         <?php } die(); .........

Esos dos die() que se ven al principio y al final son con los que he averiguado eso.
__________________
Mas vale un codigo que mil palabras
  #7 (permalink)  
Antiguo 02/12/2011, 10:39
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 9 meses
Puntos: 96
Respuesta: Problema en formulario

Saludos

El código funciona, otra cosa es que debas acoplarlo a lo que necesitas pero así debería ser la funcionalidad!.

Y coloque 5 basandome en este for

Código PHP:
Ver original
  1. for($i = 1; $i <= 5; $i++)
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #8 (permalink)  
Antiguo 02/12/2011, 10:45
Avatar de dmm84  
Fecha de Ingreso: marzo-2011
Mensajes: 164
Antigüedad: 13 años, 8 meses
Puntos: 13
Respuesta: Problema en formulario

Cita:
Iniciado por Nano_ Ver Mensaje
Saludos

El código funciona, otra cosa es que debas acoplarlo a lo que necesitas pero así debería ser la funcionalidad!.

Y coloque 5 basandome en este for

Código PHP:
Ver original
  1. for($i = 1; $i <= 5; $i++)
Fallo tonto, solo cambie la consulta mysql ahora lo pruebo y en un rato respondo, pero todavia me tiene lo del HTML sorprendido
__________________
Mas vale un codigo que mil palabras
  #9 (permalink)  
Antiguo 02/12/2011, 13:24
Avatar de dmm84  
Fecha de Ingreso: marzo-2011
Mensajes: 164
Antigüedad: 13 años, 8 meses
Puntos: 13
Respuesta: Problema en formulario

He cambiado el codigo HTML y solo con eso he conseguido que funcione sin hacer ningun cambio en PHP, algo raro le debe pasar a mi servidor porque esto no tiene sentido.
__________________
Mas vale un codigo que mil palabras

Etiquetas: update
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:31.