Foros del Web » Programando para Internet » PHP »

Creo que el problema podria estar en los IF me ayudas.??

Estas en el tema de Creo que el problema podria estar en los IF me ayudas.?? en el foro de PHP en Foros del Web. Bueno lo que pretendo hacer es lo siguiente. 1. como es logico modificar la tabla seleccionada. atravez del select que le tengo 2. si se ...
  #1 (permalink)  
Antiguo 15/06/2009, 01:23
 
Fecha de Ingreso: abril-2009
Mensajes: 32
Antigüedad: 15 años
Puntos: 0
Creo que el problema podria estar en los IF me ayudas.??

Bueno lo que pretendo hacer es lo siguiente.

1. como es logico modificar la tabla seleccionada. atravez del select que le tengo
2. si se seleccionan todos los campos (Checkbox), pues vamos que se modifiquen todos
3. si activa un solo checkbox pues que se modifique solo ese campo.

Tengo este codigo. pero en mi infinita ignorancia, me funciona solamente cuando los seleccione todos.
Es decir que si selecciono modificar el mail, o el (los) pago(s) (X) no lo hace.
Creo que el problema podria estar en los if que coloque.. pero no se...
aca el codigo.


<Html>
<body>
<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>
<form name=formulario METHOD="post">
<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>
<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>
</table>
<br><INPUT TYPE="submit" value="Modificar" /><br>
</form >

<?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");//conecto a la DB
mysql_select_db("fundabol",$conexion) or die("Problemas en la selección de la base de datos");

if(isset($_POST['ch1'])&& isset($_POST['ch2'])&& isset($_POST['ch3'])&&isset($_POST['ch4'])&& isset($_POST['ch5'])&&isset($_POST['ch6']))
{
mysql_query("UPDATE $Curso SET Nombre='$Nombre',Email='$Email',Pago1='$Pago1'
,Pago2='$Pago2',Pago3='$Pago3',Pago4='$Pago4' WHERE Codigo=$Codigo");
echo "Registro modificado <br/>\n";
}
else
{
if(isset($_POST['ch1']))
{
mysql_query("UPDATE $Curso SET Nombre='$Nombre' WHERE Codigo=$Codigo");
echo "checkbox ch1 seleccionado <br/>\n";
}
else
{
if(isset($_POST['ch1'])&& isset($_POST['ch2']))
{
mysql_query("UPDATE $Curso SET Nombre='$Nombre',Email='$Email' WHERE Codigo=$Codigo");
echo "checkbox ch1 y ch2 seleccionado <br/>\n";
}
else
{
if(isset($_POST['ch1'])&&isset($_POST['ch2'])&&isset($_POST['ch3']))
{
mysql_query("UPDATE $Curso SET Nombre='$Nombre',Email='$Email',Pago1='$Pago1' WHERE Codigo=$Codigo");
echo "checkbox ch1, ch2 y ch3 seleccionado <br/>\n";
}
else
{
if(isset($_POST['ch1'])&&isset($_POST['ch2'])&&isset($_POST['ch3'])&&isset($_POST['ch4']))
{
mysql_query("UPDATE $Curso SET Nombre='$Nombre',Email='$Email',Pago1='$Pago1'
,Pago2='$Pago2' WHERE Codigo=$Codigo");
echo "checkbox ch1, ch2, ch3 y ch4 seleccionado <br/>\n";
}
else
{

if(isset($_POST['ch1'])&&isset($_POST['ch2'])&&isset($_POST['ch3'])&&isset($_POST['ch4'])&&isset($_POST['ch5']))
{
mysql_query("UPDATE $Curso SET Nombre='$Nombre',Email='$Email',Pago1='$Pago1'
,Pago2='$Pago2',Pago3='$Pago3' WHERE Codigo=$Codigo");
echo "checkbox ch1, ch2, ch3, ch4 y ch5 seleccionado <br/>\n";
}
}
}
}
}
mysql_close($conexion);
}

?>

</BODY>
</HTML>


Como pueden ver el programa corre pero no hace lo que se pide..
ademas que se que esta repetido el codigo en cuanto a los if pero no fui capaz de realizarlo con case.. si alguno me tira alguna ayuda.. BIENVENIDA sea..
Gracias.

Última edición por nitramara; 15/06/2009 a las 19:17 Razón: lo he ido mejorando
  #2 (permalink)  
Antiguo 15/06/2009, 04:31
Avatar de Llave  
Fecha de Ingreso: abril-2005
Ubicación: Galicia
Mensajes: 52
Antigüedad: 19 años
Puntos: 1
Respuesta: Modificar cuando checkbox esta activo.?

¿Cuando quieres decir que no hace lo que debería? ¿A qué parte te refieres?

Por otra parte, si lo que quieres es leer los checks de forma sencilla. puedes hacerlo si envías todos los checks en un mismo array.

Algo del estilo:
Código PHP:
<input type="checkbox" name="ar_checkbox[]" value="Pago4"> &nbsp;&nbsp;&nbsp;&nbspPago4<br></td
Pero a todos los checks los llamas ar_checkbox[]

Luego, a la hora de leerlos en el php destino, sería algo así:
Código PHP:
$ar_checkbox $_REQUEST['ar_checkbox'];      // Array con los checkbox que vinieron marcados. 
Teniéndolos todos juntitos en un array ya puedes leerlos usando la forma que desees.

Espero que te sirva.
  #3 (permalink)  
Antiguo 15/06/2009, 15:30
 
Fecha de Ingreso: abril-2009
Mensajes: 32
Antigüedad: 15 años
Puntos: 0
Respuesta: Modificar cuando checkbox esta activo.?

Bueno gracias por la respuesta..
Cuando digo que no me hace lo que deberia me refiero a que no modifica la DB.
Intento con ese poco de IF que mande alli, que me pregunte si se han seleccionado tal o cual y que si es cierto pues que ingrese a la modificacion que tengo alli plasmada...
Te agradezco lo de los array pero la verdad he leido sobre esto y como soy super neofito en esto no lo he comprendido bien te agradeceria si no es mucha molestia me tiras un ejemplillo bien completo para ver si entiendo eso de una vez por todas...
Por tu colaboracion gracias.
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 05:37.