Foros del Web » Programando para Internet » PHP »

$$variable pero no llega

Estas en el tema de $$variable pero no llega en el foro de PHP en Foros del Web. Necesito generar los nombres de una variables de un formulario y luego imprimir el valor que contienen. Por ejemplo, tengo cert0=20 , cert1=36 y cert2=65 ...
  #1 (permalink)  
Antiguo 11/11/2003, 10:10
 
Fecha de Ingreso: julio-2002
Ubicación: Rancagua - Chile
Mensajes: 494
Antigüedad: 21 años, 9 meses
Puntos: 0
$$variable pero no llega

Necesito generar los nombres de una variables de un formulario y luego imprimir el valor que contienen.
Por ejemplo, tengo cert0=20 , cert1=36 y cert2=65
Entonces hago un for desde 0 hasta 2 y dentro del for voy generando el nombre "cert0" "cert1" "cert2", y posteriormente para imprimir lo que contienen lo hago con $$variable

Aca el codigo:

Código PHP:

for($i=0;$i<$cant_certamen;$i++){
    echo 
$id_cert[$i];echo "<br>";
    
$n="cert".$i;
    echo 
$n;
    echo $
$n;echo "<br>";
    } 
De antemano Gracias y Salu2
__________________
AK.T.I.V.E.tm Live, Never DIE
  #2 (permalink)  
Antiguo 11/11/2003, 10:18
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

Pero si lo tienes hecho, ¿cual es el problema? ¿No te funciona ese codigo? ¿Que es lo que muestra? ¿Cual es el formulario?

Es que ese codigo deberia funcionar siempre y cuando exista $cert0, $cert1, ... . Y eso depende del method del formulario. Y del register_globals. Podrias usar el superglobal $_POST (o $_GET) en lugar de $$n. Seria algo asi:
Código PHP:
for($i=0;$i<$cant_certamen;$i++){
    echo 
$id_cert[$i];echo "<br>";
    
$n="cert".$i;
    echo 
$n;
    
//echo $$n;
    
echo $_POST[$n];
    echo 
"<br>";

Suerte.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 11/11/2003, 10:39
 
Fecha de Ingreso: julio-2002
Ubicación: Rancagua - Chile
Mensajes: 494
Antigüedad: 21 años, 9 meses
Puntos: 0
Este es el codigo:
En esta genero el formulario eval.php
Código PHP:
$consulta=mysql_query("select id_eval, tipo from evaluaciones where tipo='1'");
$certamen=mysql_num_rows($consulta);
.
.
?>
<input name="cant_certamen" type="hidden" id="cant_certamen" value="<? echo $certamen;?>">

<input name="cert" type="hidden" id="cert" value="<? echo $eval_cert;?>">

<input name="enviar" type="submit" id="enviar" value="Enviar" onClick="Validar(this.form)">
aca trato de recuperar los datos grabar.php
Código PHP:
<html>
<head>
<title>Grabar</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<? 
//la variable $cert y $cant_certamen vienen del formulario anterior
//y si las imprimo llegan correctamente
$id_cert=explode(",",$cert);
if(
$cant_certamen>0)
{
for(
$i=0;$i<$cant_certamen;$i++){
    echo 
$id_cert[$i];echo "<br>";
    
$n="cert".$i;
    echo 
"==>"; echo $_POST[$n];echo "<br>";
                
//tambien he probado con echo $$n
    
}
}
?>
<body>

</body>
</html>
Ojala exista alguna solucion

Salu2
__________________
AK.T.I.V.E.tm Live, Never DIE

Última edición por KillerBKS; 11/11/2003 a las 11:04
  #4 (permalink)  
Antiguo 11/11/2003, 11:51
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Revisa esta FAQ y fijate como se trabajan ese tipo de situaciones usando arrays en tus name="bla[]" de tus campos de formulario...

El ejemplo está orientado a "checkbox" .. pero con la misma filosofía y técnica puedes usar campos hidden .. "text" .. o lo que quieras.

http://www.forosdelweb.com/showthrea...710#post518710

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 11/11/2003, 12:16
 
Fecha de Ingreso: julio-2002
Ubicación: Rancagua - Chile
Mensajes: 494
Antigüedad: 21 años, 9 meses
Puntos: 0
gracias, ya esta solucionado. El el submit mando a una funcion de JavaScript que valida que los campos no esten vacios, la saque y funciono correctamente. Ahora bien, lo de JavaScript es harina de otro saco.

Gracias nuevamente y Salu2
__________________
AK.T.I.V.E.tm Live, Never DIE
  #6 (permalink)  
Antiguo 11/11/2003, 14:45
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Yo sacaria la funcion Validar del onclick y la pondria en el onsubmit del form. REvisa en el foro de javascript como se hace.

Suerte.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #7 (permalink)  
Antiguo 11/11/2003, 14:52
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Pues yo sigo erre q erre xD .. Pese que el problema se ha solucionado.. usaría arrays para gestionar ese tipo de variables variables .. xDD

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #8 (permalink)  
Antiguo 12/11/2003, 16:55
 
Fecha de Ingreso: julio-2002
Ubicación: Rancagua - Chile
Mensajes: 494
Antigüedad: 21 años, 9 meses
Puntos: 0
Disculpa Cluster, estube unos dias ausentes y ahora revise este mensaje, pero no logro entender muy bien a que te refieres.

Salu2
__________________
AK.T.I.V.E.tm Live, Never DIE
  #9 (permalink)  
Antiguo 13/11/2003, 01:22
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 6 meses
Puntos: 41
Si revisaste la FAQ que te recomendó Cluster,
http://www.forosdelweb.com/showthre...8710#post518710
verás que una buena forma es llamando a los campos del formulario que te interesan con el mismo nombre y con corchetes... Así:

<input type="loquesea" name=grupo1[] ...
<input type="loquesea" name=grupo1[] ...

Entonces al recibir las variables en tu script recibirás el array $grupo1... o mejor, $_POST['grupo1'] con los datos de tus campos.. Entonces bastará con un foreach para recorrer tu array.

Así:

foreach($_POST['grupo1'] as $valor){
echo $valor;
}

De esa manera no te lías con las variables variables ($$)... Y la gran ventaja es que puedes crear grupos de campos...

No te puse el ejemplo con tus datos concretos porque no pusiste la parte del formulario donde pueden quedar campos vacíos...

Saludos
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 09:06.