Article View: chile.comp.programacion
Article #3329Re: php variables dianmicas
From: Cristian Gutierrez
Date: Sun, 20 Mar 2005 21:45
Date: Sun, 20 Mar 2005 21:45
67 lines
4188 bytes
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!newsReferences:
<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=