Foros del Web » Programando para Internet » PHP »

variables variables

Estas en el tema de variables variables en el foro de PHP en Foros del Web. Estimados tengo un problema con el manejo de variables variables. les cuento. tengo una pagina en la cual genero una tabla y en cada una ...
  #1 (permalink)  
Antiguo 27/08/2008, 17:26
 
Fecha de Ingreso: febrero-2003
Ubicación: La serena
Mensajes: 144
Antigüedad: 21 años, 3 meses
Puntos: 0
variables variables

Estimados tengo un problema con el manejo de variables variables.
les cuento.

tengo una pagina en la cual genero una tabla y en cada una de las filas agrego un checkbox. La tabla es dinamica y la cantidad de filas depende de los resultados de una query. A los checkbox les asigno un valor dinamico dependiendo de la cantidad de registros retornados.
ej.
Código PHP:
<tr> <td align="center"><label class="mb"> <input type="checkbox" name="check_<? echo $b ?>"/> </label></td>
</tr>
siendo $b una variable que se incrementa en un ciclo. ($b++).

esta pagina tiene un boton de envio que envia los datos a una pagina receptora que graba.

para tomar los valores de los check uso variables "variables" de la siguiente manera.

Código PHP:
$total_chk 100;

    
$b=0;

        for( 
$i=1$i <= $total_chk$i++)

          {            

              
$dato='chk_'.$i;         

              
$valor_chk=$$dato;
  

                  if (
$valor_chk<>""){ 
                      
//aqui genero las consulta de inserción el la base de datos
                      

                    
$b++;

                  }

                  
$array=array_envia($array);

        }
function 
array_envia($array) {

    
$tmp serialize($array);

    
$tmp urlencode($tmp);

    return 
$tmp;


esto funciona ok si tengo el parametro register global en on ya que
$valor_chk=$$dato; toma el valor del check que se esta evaluando.

el problema es que en el server que debo ejecutar esto obviamente no esta activado este parametro por lo que debo utilizar $_POST[]

como lo podria hacer para asignar el valor del check a una variable. ? considerando que el nombre del check lo obtengo dinamicamente.

saludos y grasas totales :)
__________________
Hoy dia aprendí algo nuevo.
  #2 (permalink)  
Antiguo 27/08/2008, 17:42
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 15 años, 9 meses
Puntos: 105
Respuesta: variables variables

Ayi tienes que hacer checkbox pero en array (con con nombres diferentes) y algo asi:

Haces un Array de checkboxs
Código HTML:
<tr><td align="center"><label class="mb">
<input type="checkbox" name="check[<?php echo $b ?>]" />
</label></td>
</tr> 
Y al recibirlos en la otra pagina, lo siguiente:

Código PHP:
$total_chk 100;
$check=$_REQUEST[check];
for( 
$b=0$b $total_chk$b++){
  
$valor_chk=$check[$b];
  if (
$valor_chk<>""){ 
    
//aqui genero las consulta de inserción el la base de datos
  
}
  
$array=array_envia($array);
}
/*
forma mas eficiente, la que yo utilizo.... mira cual te parece mas sencilla ps
foreach($check as $v => $k){
  echo $k."<br>";//ejemplo para ver los registros....
  //$v es el indice, y $k el valor que le diste a los checkbox anteriores
  //aca hiria tu codigo
}
*/

//noc para que es esto, pero en fin
function array_envia($array) {
    
$tmp serialize($array);
    
$tmp urlencode($tmp);
    return 
$tmp;


Atte.

MasterOjitos
  #3 (permalink)  
Antiguo 28/08/2008, 15:24
 
Fecha de Ingreso: febrero-2003
Ubicación: La serena
Mensajes: 144
Antigüedad: 21 años, 3 meses
Puntos: 0
Respuesta: variables variables

Cita:
Iniciado por masterojitos Ver Mensaje
Ayi tienes que hacer checkbox pero en array (con con nombres diferentes) y algo asi:

Haces un Array de checkboxs
Código HTML:
<tr><td align="center"><label class="mb">
<input type="checkbox" name="check[<?php echo $b ?>]" />
</label></td>
</tr> 
Y al recibirlos en la otra pagina, lo siguiente:

Código PHP:
$total_chk 100;
$check=$_REQUEST[check];
for( 
$b=0$b $total_chk$b++){
  
$valor_chk=$check[$b];
  if (
$valor_chk<>""){ 
    
//aqui genero las consulta de inserción el la base de datos
  
}
  
$array=array_envia($array);
}
/*
forma mas eficiente, la que yo utilizo.... mira cual te parece mas sencilla ps
foreach($check as $v => $k){
  echo $k."<br>";//ejemplo para ver los registros....
  //$v es el indice, y $k el valor que le diste a los checkbox anteriores
  //aca hiria tu codigo
}
*/

//noc para que es esto, pero en fin
function array_envia($array) {
    
$tmp serialize($array);
    
$tmp urlencode($tmp);
    return 
$tmp;


Atte.

MasterOjitos
Espectacular me sirvió y obviamente tu solución es mucho mas eficiente, muchas gracas Master
__________________
Hoy dia aprendí algo nuevo.
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 07:48.