Foros del Web » Programando para Internet » PHP »

MODIFICAR datos validados por checkbox

Estas en el tema de MODIFICAR datos validados por checkbox en el foro de PHP en Foros del Web. la idea es que con los checkbox me permita modificar solamente el campo activado por este. Aunque en este codigo que te he de mostrar ...
  #1 (permalink)  
Antiguo 11/06/2009, 23:24
 
Fecha de Ingreso: abril-2009
Mensajes: 32
Antigüedad: 15 años
Puntos: 0
MODIFICAR datos validados por checkbox

la idea es que con los checkbox me permita modificar solamente el campo activado por este.
Aunque en este codigo que te he de mostrar no he empezado a modificar las sentencias con los check's, por que no tengo la idea de desarrollarlo ya que pienso que primero para aprender esto de el PHP y MYSQL deberia modificar todos los campos (Creo)

Bueno en lineas generales lo que pretendo hacer es:

1. Con el select capturo la tabla
2. Quiero que al seleccionar el Chekbox me permita solamente medificar ese campo.
3. Si no se inserta codigo entonces me muestra un boton para volver a la anterior pantalla.
4. La modificacion en estos momentos, la tengo para que me modifique solo los campos "Codigo, Nombre y Email" pero logicamente lo que he de lograr es que me modifique los campos seleccionados.

Bueno sin mas ni mas aca les mando el codigo que tengo.


<html>
<body>
<center>
<h1>Modificar Registro</h1>
</center>
<hr noshade style = "color:CC6666;height:1px" ></hr>

<FORM name ="form1" METHOD="post"><br />
Seleccione Grupo:
<select name="Curso">
<option value="">Grupos</option>
<option value="php">php</option>
<option value="visual">visual</option>
<option value="excel">excel</option>
<option value="winword">winword</option>
</select><br />
<br />Codigo:&nbsp;&nbsp;&nbsp;&nbsp; <input type="text" name="codigo" />
<br />
<div align="center">
Ingrese Codigo: <br><input type="checkbox" name="Codigo"><input type="text" name="Codigo"> <br>
Ingrese nombre: <br><input type="checkbox" name="Nombre"><input type="text" name="Nombre"> <br>
Ingrese Email: <br><input type="checkbox" name="Email"><input type="text" name="Email"> <br>
Ingrese Pago1: <br><input type="checkbox" name="Pago1"><input type="text" name="Pago1"> <br>
Ingrese Pago2: <br><input type="checkbox" name="Pago2"><input type="text" name="Pago2"> <br>
Ingrese Pago3: <br><input type="checkbox" name="Pago3"><input type="text" name="Pago3"> <br>
Ingrese Pago4: <br><input type="checkbox" name="Pago4"><input type="text" name="Pago4"> <br>

</div>
<br>
<a href="index.php">volver</a>
<input type="submit" value="dale" >
</form>
<?php
$curso = isset($_POST["Curso"]) ? $_POST["Curso"] : '';
$codigo = isset($_POST["Codigo"]) ? $_POST["Codigo"] : '';
$conexion=mysql_connect("localhost","root","") or die("Problemas en la conexion");//conecto a la DB
mysql_select_db("DB",$conexion) or die("Problemas en la selección de la base de datos");
if ($codigo== empty($codigo)) {
echo "No modificaras datos";?>
<input type="submit" value="Volver" >
<?php }else {
mysql_query("UPDATE $curso SET codigo='$Codigo',Nombre='$Nombre',Email='$Email' WHERE codigo=$codigo");
}
?>
</BODY>
</HTML>

PD. por cualquier ayuda GRACIAS.
  #2 (permalink)  
Antiguo 11/06/2009, 23:57
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: MODIFICAR datos validados por checkbox

Cita:
Iniciado por nitramara
<input type="checkbox" name="Codigo"><input type="text" name="Codigo"> <br>
- No puedes tener dos campos con el mismo name.
- No estas usando HTML estandar y las cosas podrian no funcionar como lo esperas.
- El efecto que quieres no lo puedes hacer solo con PHP, necesitas javascript, te recomiendo preguntar en ese subforo.
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 12/06/2009, 13:12
 
Fecha de Ingreso: abril-2009
Mensajes: 32
Antigüedad: 15 años
Puntos: 0
Respuesta: MODIFICAR datos validados por checkbox

Ok de acuerdo se me paso eso, bueno en verdad no le vi gran importancia ya que el uno es text y el otro chekbox... (correcto, correcto eso esta mal Disculpa), pero aparte de eso la modificacion (Sentencia) esta bien?? no me cambia nada, si yo digito los datos a modificar y al darle en el boton enviar... no me deberia mostrar en la DB los cambios realizados..??

Gracias por la ayuda..
  #4 (permalink)  
Antiguo 12/06/2009, 13:31
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: MODIFICAR datos validados por checkbox

Los nombres de campo duplicados te causaran problemas, aunque sean de diferente tipo, todos se reciben en $_POST y no hay manera de saber si el campo "nombre" proviene de un checkbox o un text.

El checkbox por si solo no te puede cambiar el estado de un input text, necesitas recurrir forzosamente a javascript; por ejemplo, tu html podria quedar:

Código html:
Ver original
  1. <input type="checkbox" name="act-nombre" value="1" onchange="activar_desactivar('nombre');" />
  2. <input type="text" name="nombre" id="nombre" value ="" disabled="disabled" />

En el checkbox se agrego la opcion onchange, para que cuando cambie el estado se habilite o deshabilite el campo nombre. En el text, se agrego id="nombre" y el estado de deshabilitado.

Sobre la funcion que se requiere en javascript, en el subforo correspondiente te ayudaran mejor de lo que pueda hacerlo yo.

Ahora en tu php (ya sin los campos con nombres duplicados):
Código php:
Ver original
  1. // Asigna primero valores por defecto
  2. $campo_text = '';
  3.  
  4. if(isset($_POST['campo-chekbox'])) {
  5.     // OK, el checkbox de este campo esta marcado, hay que obtener el valor del campo
  6.     $campo_text  = $_POST['campo-text'];
  7.     // Aqui es donde habria que hacer una validacion, longitud, caracteres permitidos, etc.
  8. }
__________________
- León, Guanajuato
- GV-Foto
  #5 (permalink)  
Antiguo 13/06/2009, 23:47
 
Fecha de Ingreso: abril-2009
Mensajes: 32
Antigüedad: 15 años
Puntos: 0
Respuesta: MODIFICAR datos validados por checkbox

Bueno gracias...
Mira la verdad como he quedado un poco mas confundido....
He leido (HARTO) sobre todo esto...
He logrado un pequeño paso (GIgante para mi) aparte de que he organizado mas o menos la presentacion como queria, tambien he logrado leer y aplicar a lo mio unas cosillas que me he encontrado en la red.

Bueno esos son logros grandes para mi ya que hasta ahora estoy aprendiendo y empece de ceros (abracitos para mi Por mi jejejeje)..
Sin mas chacara tengo este codigo...

<HTML>
<BODY>
<center>
<strong><font font color="#000000" size="5">Modificar Registro</font></strong>
</center>
<hr noshade style = "color:CC6666;height:1px" ></hr>
<script language="javascript">

function selydestodos(form,activa)
{
for(i=0;i<form.elements.length;i++)
if(form.elements[i].type=="checkbox")
form.elements[i].checked=activa;
}
</script>
<table >
<col style="width: 27em;" />
<col style="width: 7em;" span="8" align="right" />
<tr>
<td colspan="3">Seleccione Grupo:
<select name="Curso">
<option value="">Grupos</option>
<option value="php">php</option>
<option value="visual">visual</option>
<option value="excel">excel</option>
<option value="winword">winword</option>
</select></td>
</tr>
<tr><form name=formulario>
<td align="center" width="20%">Codigo: <input type="text" name="Codigo"></td>
<td colspan="2" align="left" >
<input type="checkbox" name="ch1" value="Nombre">&nbsp;&nbsp;&nbsp;&nbsp; Nombre<br>
<input type="checkbox" name="ch2" value="Email"> &nbsp;&nbsp;&nbsp;&nbsp; Email<br>
<input type="checkbox" name="ch3" value="Pago1"> &nbsp;&nbsp;&nbsp;&nbsp; Pago1<br>
<input type="checkbox" name="ch4" value="Pago2"> &nbsp;&nbsp;&nbsp;&nbsp; Pago2<br>
<input type="checkbox" name="ch5" value="Pago3"> &nbsp;&nbsp;&nbsp;&nbsp; Pago3<br>
<input type="checkbox" name="ch6" value="Pago4"> &nbsp;&nbsp;&nbsp;&nbsp; Pago4<br></td>

<td width="20%"><div align="center">
Ingrese nombre: <br><input type="text" name="Nombre" value=""> <br>
Ingrese Email: <br><input type="text" name="Email" value=""> <br>
Ingrese Pago1: <br><input type="text" name="Pago1" value=""> <br>
Ingrese Pago2: <br><input type="text" name="Pago2" value=""> <br>
Ingrese Pago3: <br><input type="text" name="Pago3" value=""> <br>
Ingrese Pago4: <br><input type="text" name="Pago4" value=""> <br>
</div></td>
</tr>
<tr>
<td colspan="3">
<a href="javascript:selydestodos(document.formulario, 1)">Marcar todos</a> |
<a href="javascript:selydestodos(document.formulario, 0)">Quitar Todos</a><br>
</td>
</tr></form >
</table>
<br>
<INPUT TYPE="submit" value="Modificar" onclick="verifica"() />
<br>

<?php
$Curso = isset($_POST["Curso"]) ? $_POST["Curso"] : '';
$Codigo = isset($_POST["Codigo"]) ? $_POST["Codigo"] : '';
$Nombre = isset($_POST["Nombre"]) ? $_POST["Nombre"] : '';
$Email = isset($_POST["Email"]) ? $_POST["Email"] : '';
$Pago1 = isset($_POST["Pago1"]) ? $_POST["Pago1"] : '';
$Pago2 = isset($_POST["Pago2"]) ? $_POST["Pago2"] : '';
$Pago3 = isset($_POST["Pago3"]) ? $_POST["Pago3"] : '';
$Pago4 = isset($_POST["Pago4"]) ? $_POST["Pago4"] : '';

$conexion=mysql_connect("localhost","root","") or die("Problemas en la conexion");
mysql_select_db("DB",$conexion) or die("Problemas en la selección de la base de datos");
if ($Codigo== empty($Codigo)) {
echo "No modificaras datos";?>
<input type="submit" value="Volver" >
<?php }else {
mysql_query("UPDATE $Curso SET Codigo='$Codigo',Nombre='$Nombre',Email='$Email',P ago1='$Pago1'
,Pago2='$Pago2',Pago3='$Pago3',Pago4='$Pago4' WHERE Codigo=$Codigo");
}
?>
</BODY>
</HTML>

Si no te has aburrido y has llegado hasta aca.. y si a bien tienes me puedes informar que rayos hago mal para que no me modifique los campos que estoy solicitando...
Disculpa si con la anterior pregunta te hice perder tiempo..
De todas formas gracias por tu colaboracion..
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 19:22.