Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] update a tabla con input type="checkbox"

Estas en el tema de update a tabla con input type="checkbox" en el foro de PHP en Foros del Web. Estoy haciendo un UPDATE a una tabla con input type="checkbox" Se que por default si no se define el valor devulve 0 solo que yo ...
  #1 (permalink)  
Antiguo 01/02/2013, 01:37
Avatar de Capimaster  
Fecha de Ingreso: agosto-2004
Mensajes: 493
Antigüedad: 15 años, 3 meses
Puntos: 2
update a tabla con input type="checkbox"

Estoy haciendo un UPDATE a una tabla con input type="checkbox"

Se que por default si no se define el valor devulve 0
solo que yo utilizo 3 variantes

0 = No solicito
1 = Si solicito, pero aun no entrego
2 = Si solicio, ya entregue

Como podria hacer la sentencia... para si se marco el checkbox
devuelva value 2
y si no se marca mantenga el valor actual... por ejemplo si es 1 lo mantenga en 1 y no lo cambie a 0... espero haberme dado a entender

este es mi codigo:

Código PHP:
$updateSQL sprintf("UPDATE agenda SET fotosweb=%s, originales=%s, video=%s, impresiones=%s, ampliacion=%s, recibe=%s WHERE id=%s",
                       
GetSQLValueString($_POST['fotosweb'], "date"),
                       
GetSQLValueString($_POST['originales'], "text"),
                       
GetSQLValueString($_POST['video'], "text"),
                       
GetSQLValueString($_POST['impresiones'], "text"),
                       
GetSQLValueString($_POST['ampliacion'], "text"),
                       
GetSQLValueString($_POST['recibe'], "text"),
                       
GetSQLValueString($_POST['id'], "int")); 
Código HTML:
Ver original
  1. <input type="checkbox" name="fotosweb" id="fotosweb" <?php
  2.         if ($row_eventos['fotosweb'] == 0) { echo 'disabled="disabled"'; }
  3.         elseif ($row_eventos['fotosweb'] == 1) { echo'value="2"'; }
  4.         else  { echo 'disabled="disabled" checked="checked"'; } ?> style="width:15px;"  />
__________________
http://www.elcapitolio.com.mx - Ocotlán, Jalisco, México

Última edición por Capimaster; 01/02/2013 a las 02:06 Razón: agrego el input
  #2 (permalink)  
Antiguo 01/02/2013, 04:26
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 11 años, 8 meses
Puntos: 574
Respuesta: update a tabla con input type="checkbox"

Código PHP:
Ver original
  1. <?php
  2.         if ($row_eventos['fotosweb'] == 0) { echo 'disabled="disabled"'; }
  3.         elseif ($row_eventos['fotosweb'] == 1) { echo'value="2"'; }
  4.         else  { echo 'value="'.$row_eventos['fotosweb'].'"'
  5.                   .' disabled="disabled" checked="checked"'; } ?>

No se si te acabo de entender pero esto no serviria?

La unica posibilidad de que NO este disabled y NO este checked es que $row_eventos['fotosweb']==1 si esta checked luego te vale el valor...
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #3 (permalink)  
Antiguo 01/02/2013, 10:11
Avatar de Capimaster  
Fecha de Ingreso: agosto-2004
Mensajes: 493
Antigüedad: 15 años, 3 meses
Puntos: 2
Respuesta: update a tabla con input type="checkbox"

Cita:
Iniciado por quimfv Ver Mensaje
Código PHP:
Ver original
  1. <?php
  2.         if ($row_eventos['fotosweb'] == 0) { echo 'disabled="disabled"'; }
  3.         elseif ($row_eventos['fotosweb'] == 1) { echo'value="2"'; }
  4.         else  { echo 'value="'.$row_eventos['fotosweb'].'"'
  5.                   .' disabled="disabled" checked="checked"'; } ?>

No se si te acabo de entender pero esto no serviria?

La unica posibilidad de que NO este disabled y NO este checked es que $row_eventos['fotosweb']==1 si esta checked luego te vale el valor...
gracias por tu ayuda.. lamentablemente hace exactamente lo mismo que el que tengo....

exactamente el problema esta en que.... si actualmente es 1.... y lo palomeamos lo cambia bien a 2
peroooo.. si no se selecciona de 1 pasa a ser 0 por no estar definido


con los que ya eran 0 no sufren alteracion con esa propuesta que tu me diste.
__________________
http://www.elcapitolio.com.mx - Ocotlán, Jalisco, México
  #4 (permalink)  
Antiguo 01/02/2013, 11:03
Avatar de h2swider  
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 12 años, 4 meses
Puntos: 194
Respuesta: update a tabla con input type="checkbox"

Supongo que algo asi tendria que servirte... la verdad que no parece complicado.
Código PHP:
Ver original
  1. $foo = isset($_POST['checkbox'])?$_POST['checkbox']:1;
__________________
Codifica siempre como si la persona que finalmente mantedra tu código sea un psicópata violento que sabe donde vives
  #5 (permalink)  
Antiguo 01/02/2013, 11:13
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 11 años, 8 meses
Puntos: 574
Respuesta: update a tabla con input type="checkbox"

No te acabo de entender...

De un checkbox puedes ver si esta disabled (1=true o 0=false) si esta checked (1=true o 0=false) y su valor....

Luego yo te sugeria que pusieras el valor....

Cita:
exactamente el problema esta en que.... si actualmente es 1.... y lo palomeamos lo cambia bien a 2
peroooo.. si no se selecciona de 1 pasa a ser 0 por no estar definido
La etiqueta tiene un valor por un lado y esta o no "palomeada" ... luego debes ver las dos cosas para poder obtener el valor....

Cita:
...cambia bien a 2...
ahi te equivocas no cambia a 2 solo tiene value 2 si $row_eventos['fotosweb'] es 1, pero si eso se da, tendrá ese valor este o no "palomeada" obviamente si no esta "palomeada" el formulario no manda el valor o manda el valor 0 checked=false... debes leer el valor con javascript por ejemplo y forzar que el formulario lo mande.... como solo hay una opcion si llega cheked=false o no llega luego es 1, como te sugiere h2swider, sino llega 2 u otro valor no?
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 01/02/2013 a las 11:23
  #6 (permalink)  
Antiguo 01/02/2013, 11:18
Avatar de h2swider  
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 12 años, 4 meses
Puntos: 194
Respuesta: update a tabla con input type="checkbox"

Cita:
Iniciado por quimfv Ver Mensaje
No te acabo de entender...

De un checkbox puedes ver si esta disabled (1=true o =false) si esta checked (1=true o =false) y su valor....

Luego yo te sugeria que pusieras el valor....



La etiqueta tiene un valor por un lado y esta o no "palomeada" ... luego debes ver las dos cosas para poder obtener el valor....



ahí te equivocas no cambia a 2 solo tiene value 2 si $row_eventos['fotosweb'] es 1, pero ese valor lo tiene este o no "palomeada" obviasmente si no esta "palomeada" el formulario no manda el valor si tu no se lo dices....
La verdad, no entendí nada de este comentario, conociendo el lenguaje, no quiero ni pensar como puede llegar a entender algo el dueño del post, doble trabajo, uno por el lado técnico y otro por el uso del lenguaje... Intenta no usar una jerga tan individual, también revisa un poco tu semántica y ortografía por favor.
__________________
Codifica siempre como si la persona que finalmente mantedra tu código sea un psicópata violento que sabe donde vives
  #7 (permalink)  
Antiguo 01/02/2013, 11:34
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 11 años, 8 meses
Puntos: 574
Respuesta: update a tabla con input type="checkbox"

Quizás la frase es un poco larga.
Pero lo de "palomeada" lo copie del propietario del post, para usar su lenguaje, por eso va entre comillas. En cuanto a la ortografía tengo la mala costumbre de darle a enviar y luego editar... mala costumbre...

Lo de "obviasmente" lo corregí pero tienes razón aún me quedaron dos tildes por poner lo siento....
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #8 (permalink)  
Antiguo 04/02/2013, 01:15
Avatar de Capimaster  
Fecha de Ingreso: agosto-2004
Mensajes: 493
Antigüedad: 15 años, 3 meses
Puntos: 2
Respuesta: update a tabla con input type="checkbox"

Como comprobar si checkbox si esta checked?

Sigo sin poder resolver mi problema...
lo planteare mas sencillo en un lenguaje mas familiar.. ya que he visto que tal vez mi vocabulario es el problema...

si el chekbox esta checked devolver valor 2
si no recibio ningun cambio no hacer UPDATE a ese campo..
para si estaba en 0 permanezca en 0 y si era 1 continue siendo 1
__________________
http://www.elcapitolio.com.mx - Ocotlán, Jalisco, México
  #9 (permalink)  
Antiguo 04/02/2013, 11:53
Avatar de Capimaster  
Fecha de Ingreso: agosto-2004
Mensajes: 493
Antigüedad: 15 años, 3 meses
Puntos: 2
Respuesta: update a tabla con input type="checkbox"

Pense que esto seria mas simple, pero lo pude resolver de la siguiente manera:

Gracias h2swider por la recomendación

Código PHP:
$foo = isset($_POST['fotosweb'])?$_POST['fotosweb']:$_POST['fotosweb2'];
$foo2 = isset($_POST['originales'])?$_POST['originales']:$_POST['originales2'];
$foo3 = isset($_POST['video'])?$_POST['video']:$_POST['video2'];
$foo4 = isset($_POST['impresiones'])?$_POST['impresiones']:$_POST['impresiones2'];
$foo5 = isset($_POST['ampliacion'])?$_POST['ampliacion']:$_POST['ampliacion2'];

$recibe $_POST['recibe'].'@'.$_POST['recibedate'];
$updateSQL sprintf("UPDATE agenda SET fotosweb=%s, originales=%s, video=%s, impresiones=%s, ampliacion=%s, recibe=%s WHERE id=%s",
                       
GetSQLValueString($foo"text"),
                       
GetSQLValueString($foo2"text"),
                       
GetSQLValueString($foo3"text"),
                       
GetSQLValueString($foo4"text"),
                       
GetSQLValueString($foo5"text"),
                       
GetSQLValueString($recibe"text"),
                       
GetSQLValueString($_POST['id'], "int")); 

y para los campos con terminacion en 2 los mande con hidden..

creo que no es la mejor solucion pero me funciono!
__________________
http://www.elcapitolio.com.mx - Ocotlán, Jalisco, México
  #10 (permalink)  
Antiguo 07/02/2013, 16:41
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 12 años, 5 meses
Puntos: 1567
Respuesta: update a tabla con input type="checkbox"

http://www.forosdelweb.com/f13/conta...4/#post4171339
Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.

Etiquetas: input, sql, tabla, 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 22:29.