Ver Mensaje Individual
  #1 (permalink)  
Antiguo 06/06/2005, 11:45
Avatar de verinchi
verinchi
 
Fecha de Ingreso: septiembre-2004
Ubicación: Buenos Aires
Mensajes: 647
Antigüedad: 19 años, 7 meses
Puntos: 2
Problema con paso de variables con nombre compuesto por concatenación

Hola a todos!
Mi problema es que tengo un listado extraído de una tabla de la base de datos, y en ese listado aparece un campo editable y un checkbox por cada elemento del listado, estos datos tengo que capturarlos en otra página (Donde proceso los datos) y hacer lo que corresponda según se haya tildado el checkbox o no.
Para esto generé dentro del do - while que muestra los elementos de la tabla, un input con nombre concatenado con una variable $i que va incrementando por cada muestra de la base de datos.
Todo lo toma menos el nombre del checkbox en la pagina de procesos... y realmente no me doy cuenta pro qué, si alguien tiene ganas de mirar mi código a ver qué le encuentra se lo agradecería mucho.
El error es que no reconoce el checkbox, cuando trato de rescatar su valor por $_POST[$var] dice que es un indice indefinido.
Pero si pruebo esto con otro de los campos que llegan por POST, los muestra.
Ah! $var="nombre".$i;
Para que al poner $_POST[$var]; tome lo que tiene asociado var.
Bueno, acá adjunto el código:
Código PHP:
 <?php session_start();
require_once(
'../Connections/coninfo.php');
$i=1;?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="../estiloprivado.css" rel="stylesheet" type="text/css">
</head>
<body class="bodyuser">
<table width="600" border="0" align="center" cellspacing="1">
<tr>
    <td>&nbsp;</td>
</tr>
<tr>
    <td class="tituser"><div align="center">Bienvenido <?php echo $_SESSION['nomus'];?> al panel de configuraci&oacute;n <br>
        </div></td>
</tr>
<tr>
    <td class="rowcontenido">Nivel de participaci&oacute;n: <?php echo $_SESSION['usuario'];?></td>
</tr>
<?php if( $_SESSION['usuario']=="Administracion"){
//Trae los datos de usuarios
mysql_select_db($database_coninfo$coninfo);
$Quser "SELECT idusuario, nombre, nivel FROM usuarios ORDER BY nombre ";
$User mysql_query($Quser$coninfo) or die(mysql_error());
$row_User mysql_fetch_assoc($User);
$totalRows_User mysql_num_rows($User);
?>
<tr>
    <td class="tituser"><div align="center">Usuarios registrados</div></td>
 
</tr>
<tr>
    <td class="rowcontenido"><form name="form2" method="post" action="niveles.php">
     <table width="100%" border="1" cellspacing="0" class="tablaborde">
<tr>
         <td width="44%"><div align="center">Nombre</div></td>
         <td width="38%"><div align="center">Nivel de participación</div></td>
         <td width="18%"><div align="center">Eliminar</div></td>
</tr>
         <?php do {?>
<tr>
<td><?php echo $row_User['nombre'];?>
     <input name="nombre<?php echo $i;?>" type="hidden" id="nombre<?php echo $i;?>"> <input name="Iusuario<?php echo $row_User['idusuario']; ?>" type="hidden" id="Iusuario<?php echo $row_User['idusuario']; ?>"></td>
<td>     <select name="nivel<?php echo $i;?>" id="nivel<?php echo $i;?>">
     <option value="Administracion" <?php if ($row_User['nivel']=="Administracion"){echo "Selected"; }?>>Administracion</option>
     <option value="Tecnico" <?php if ($row_User['nivel']=="Tecnico"){echo "Selected"; }?>>Tecnico</option>
     <option value="Consulta" <?php if ($row_User['nivel']=="Consulta"){echo "Selected"; }?>>Consulta</option>
     </select></td>
<td><div align="center">
     <input name="eli<?php echo $i;?>" type="checkbox" id="eli<?php echo $i;?>" value="Si">
     </div></td>
</tr>
     <?php
$i
++;
     }while (
$row_User=mysql_fetch_assoc($User));?>
        <tr>
         <td colspan="3"><div align="center">
            <input name="indice" type="hidden" id="indice" value="<?php echo $i?>">
            <input name="Submit3" type="submit" class="texto12" value="Guardar cambios">
         </div></td>
         </tr>
     </table>
    </form></td>
</tr>
<?php }?>
<tr>
    <td class="tituser"><div align="center">Edici&oacute;n de contrase&ntilde;a </div></td>
</tr>
<tr>
    <td><form name="form1" method="post" action="">
     <table width="100%" border="0" cellspacing="1">
        <tr class="rowcontenido">
         <td>Nueva Contrase&ntilde;a 
            <input name="textfield" type="password" class="texto12"></td>
         <td>Confirmar 
            <input name="textfield2" type="password" class="texto12"></td>
        </tr>
        <tr class="rowcontenido">
         <td colspan="2"><div align="center">
             <input name="Submit" type="submit" class="texto12" value="Guardar contraseña">
&nbsp;&nbsp;&nbsp;             
<input name="Submit2" type="submit" class="texto12" value="Salir del panel de usuario">
         </div></td>
         </tr>
     </table>
    </form></td>
</tr>
</table>
</body>
</html>
Y la página que procesa los datos, solo de la tabla que se encarga de actualizar o eliminar registros de usuarios (La parte de contraseña la estoy desarrollando pero no creo que presente mayores inconvenientes) es la siguiente:
Código PHP:
 <?php session_start();
require_once(
'../Connections/coninfo.php');
$tot=$_POST['indice'];
$i=1;
for (
$i=1;$i<$tot;$i++){
//Asignación del texto sql según corresponda
$elim="eli".$i;
if ((
$_POST[$elim])!="Si"){
$usa="Iusuario".$i;
$nive="nivel".$i;
$idusuario=($_POST[$usa]);
$nivel=($_POST[$nive]);
$SentSql sprintf("UPDATE usuarios SET nivel='$nivel' WHERE idusuario='$idusuario' ");
}
else{
$usa="Iusuario".$i;
$idusuario=($_POST[$usa]);
$SentSql=sprintf("DELETE FROM usuarios WHERE idusuario='$idusuario'");
}
//Ejecución del comando condicional 
mysql_select_db($database_coninfo$coninfo);
$Resultado mysql_query($SentSql$coninfo) or die(mysql_error());
}
//header("Location:verusua.php");
$uno="eli1";
echo 
$_POST[$uno];
?>
Si alguien tiene una idea de lo que estoy haciendo mal, por favor deme una mano!!!
Un saludo grande para todos, gracias de antemano por prestarme atención
__________________
Why can't we not be sober?
www.partitorium.com.ar