🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: chile.comp.programacion
Article #3329

Re: php variables dianmicas

#3329
From: Cristian Gutierrez
Date: Sun, 20 Mar 2005 21:45
67 lines
4188 bytes
Hoy en la tarde, Rick oj dijo:
> tengo una duda de una pagina estoy recogiendo X valor, y a la pagina que
> llega crea X campos de texto, luego envia a otra pagina los valores, pero no
> se como  crear X variables, es decir si de un campo de texto de un
> formulario recibo un 2, en la pagina siguiente se crearan 2*2 campos, luego
> deseo crear 2*2 variables de forma dinamica, pero no se me ocurre como, me
> dijeron algo con arreglos pero no se si se pueda usar arreglos en algo asi
>
> tengo algo asi
>
> <?$total=$_POST['numero'];? //este lo recibo de una pagina 1
>
> //esta es la pagina 2
> <form name="formulario" method="post" action="pagina3.php">
>   <?
> for($i=1 ; $i<$total+1 ; $i++)
> {
> ?>
>       <input type="text" name="campo<? echo"$i" ?>">
>      <input type="text" name="valor<? echo"$i" ?>">
>     <?
> }
> ?>
>
> //pagina 3
> entonces en esta pagina tendria $variable1=$_POST['campo1'];
> $variable2=$_POST['campo2']; $variable3=$_POST['valor1'];
> $variable4=$_POST['valor2'];
> como podria hacer esto? 

Puedes intentar revisar todas las llaves de $_POST que comiencen con
"auto_campo"/"auto_valor" (u otro prefijo que no te cause confusion con
otras entradas del formulario), y meter todo eso en un arreglo. Algo asi:

,----
| $entradas = array('campo' => array(),
|                   'valor' => array());
| 
| $total = array('campo' => 0,
|                'valor' => 0);
| 
| foreach ($_POST as $llave=>valor) {
| 
|   $calces = array();
| 
|   // si calza, era del prefijo que se uso para aislar estas entradas
|   // generadas automaticamente
|   if (preg_match('/^auto_(campo|valor)([0-9]+)$/',$llave, $calces)) {
|     $entradas[$calces[0]][$calces[1]] = $_POST[$llave];
|     $total[$calces[0]] ++ ;
|   }
| 
| }
| 
| // aca afuera tienes $entradas['campo'][$n] y $entradas['valor'][$n],
| // donde $n ocupa todos los valores que generaste para cada tipo.
`----

[ Obviamente, mi departamento de QA vale callampa :) ]

-- 
Cristian Gutierrez			http://www.dcc.uchile.cl/~crgutier
crgutier[@]dcc.uchile.cl                        Jabber:crgutier@jabber.org

Why Eternal Damnation is better than Windows Software Development, reason #1.
ED: Satan sincerely believes in the triumph of Evil.
WSD: Gates just does it for the money.
Technical Details
Message-ID: <87ekeaf0v5.fsf@guti.no-ip.org>
Path: arc1-ca.pugleaf.net!g2news1.google.com!news4.google.com!news.glorb.com!nntp-server.pubsub.com!news1.nivel5.cl!news.cec.uchile.cl!helcaraxe.dcc.uchile.cl!guti.no-ip.org!news
References: <d1kjcf$7ef$1@news1.nivel5.cl>

Show Full Headers
Complete Article Headers
X-Google-Thread: 1593cb,217afd57e2caed0a
X-Google-Attributes: gid1593cb,public
X-Google-Language: SPANISH,ASCII-7-bit
Path: arc1-ca.pugleaf.net!g2news1.google.com!news4.google.com!news.glorb.com!nntp-server.pubsub.com!news1.nivel5.cl!news.cec.uchile.cl!helcaraxe.dcc.uchile.cl!guti.no-ip.org!news
From: Cristian Gutierrez <crgutier@dcc.uchile.cl>
Newsgroups: chile.comp.programacion
Subject: Re: php variables dianmicas
Date: Sun, 20 Mar 2005 17:45:02 -0400
Organization: DCC - Universidad de Chile
Lines: 67
Message-ID: <87ekeaf0v5.fsf@guti.no-ip.org>
References: <d1kjcf$7ef$1@news1.nivel5.cl>
NNTP-Posting-Host: anakena.dcc.uchile.cl
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
X-Trace: helcaraxe.dcc.uchile.cl 1111355872 4351 192.80.24.6 (20 Mar 2005 21:57:52 GMT)
X-Complaints-To: newsmaster@dcc.uchile.cl
NNTP-Posting-Date: Sun, 20 Mar 2005 21:57:52 +0000 (UTC)
Face: iVBORw0KGgoAAAANSUhEUgAAADwAAAA8AgMAAABHkjHhAAAADFBMVEUWFhZfX1+ioqL6+vr8
 dj+QAAAAAWJLR0QAiAUdSAAAAg5JREFUeNql0s9r02AYB/B4GIHuoAgVVmG9CVYwf4ILrht40Ynd
 dEXioWUsA3PaQQ8LKHpYLnbTThwiHbWYV9Sj9rL36NUObGkPUrVzuIs/6BvyluZ9ljcxaXI2lzwf
 eJOH9/k+AvhP/7j/Fv65OxMzmynhqO1zH/So+29NLeqvh6YU8WADmemIP4lxL8pxp6p3o2aZegZl
 R3YyaBJNaaGHKkqgxOXQNkKXzLQR+g9C6+b5kfcQevgmpYRuIrRZn5BCryO0US3ogW1BdV0J+3dz
 grpXmQXYfuf5nkLH5ksK/SIrnq/rg26ioTmdygtupwgWHSvoTnvF4CZl17dOYNoWy9yNPOzXfstg
 tYtXuR9o0JwlL+HgeWGBW8ZgGBbFnWUhw33Sbdz6TvHN1ey8a3YGIN+6T2C5PYFdD2sA6d5FAu9v
 LH3WBbAJBgmIDJ3ioooFoCzPNDq5in82TX7egsdXcE+0pZ3sEr+fxW7XoCvS3HRS4f7rrGHojRP0
 6A72TOtuoBrZnVvz5kGIzVejX0jpvi2bF0Q+iz1TWuXFwbOkP7/hrrdaH58u+HakX7wwSsF8/eDT
 wf45417kFwIPd7yIcWDS52UDApevuZ86p0PLK1tuZHpoBN8YLgOM9pswfft/vO9oMf9g6UbMYNij
 /jDYglZwHRCYIIgx56aO4earyPlD89R0Mvo/9kR9HfgIgorhXaQc58oAAAAASUVORK5CYII=
User-Agent: Gnus/5.1007 (Gnus v5.10.7) Emacs/21.3 (gnu/linux)
Cancel-Lock: sha1:/nb7HnRLiFFsjGaPDHttMVBldMI=