FAQ
Hola, quería preguntaros si es posible pasar un array como parámetro en
un campo hidden de un formulario. Si paso variables normales no pasa
nada, pero si intento pasar un array, de una o varias dimensiones, la
cosa no funciona. ¿Hay alguna manera de hacerlo?

'Chas gracias.

Search Discussions

  • Nogoff at Mar 27, 2002 at 4:04 pm
    Hola Ignasi. El día 27/03/2002 escribiste:

    IAM> Hola, quería preguntaros si es posible pasar un array como parámetro en
    IAM> un campo hidden de un formulario. Si paso variables normales no pasa
    IAM> nada, pero si intento pasar un array, de una o varias dimensiones, la
    IAM> cosa no funciona. ¿Hay alguna manera de hacerlo?

    IAM> 'Chas gracias.

    Si te fijas, el valor del campo al recibirlo en la página de destino
    será 'Array()' ya que esa es la información textual que PHP ofrece al
    hacer un casting de array a cadena.

    La solución:

    ...
    <input type="hidden" value="<?php print implode('|', $mi_array); ?>">
    ...

    y al recibir:

    <?php
    ...
    ...
    $mi_array = explode('|', $HTTP_GET('mi_array'));
    ...
    ...
    ?>

    Esto te funcionará para arrays unidimensionales. Para arrays de más
    dimensiones, deberias mirar la función "serialize" o extender la
    solución implode/explode a todas las dimensiones.

    Es código de memoria (no lo he probado) Si tienes algún problema o
    quieres más detalles, no tienes más que pedirlos.

    Un saludo.

    --
    Nogoff
    <nogoff73@yahoo.com>


    _________________________________________________________
    Do You Yahoo!?
    Get your free @yahoo.com address at http://mail.yahoo.com
  • César F . Ramos Flores at Mar 27, 2002 at 4:06 pm
    Lo puedes hacer de la siguiente manera
    <input type="hidden" NAME="IdCharacteristic[]">

    Espero te sirva

    "Ignasi A. Mulet" wrote:
    Hola, quería preguntaros si es posible pasar un array como parámetro en
    un campo hidden de un formulario. Si paso variables normales no pasa
    nada, pero si intento pasar un array, de una o varias dimensiones, la
    cosa no funciona. ¿Hay alguna manera de hacerlo?

    'Chas gracias.

    --
    S A L U D O S ! ! !
    =)

    Atte.
    César F. Ramos Flores
    Webdeveloper Junior
    Webmedia, S.A. de C.V. (http://www.webmedia.com.mx)
    Tel. (0155) 51488460 al 67
    ICQ: 119547322
  • Javier A. Leyba at Mar 27, 2002 at 4:21 pm

    On 27/03/2002 at 16:55 Ignasi A. Mulet wrote:
    Hola, quería preguntaros si es posible pasar un array como parámetro en
    un campo hidden de un formulario. Si paso variables normales no pasa
    nada, pero si intento pasar un array, de una o varias dimensiones, la
    cosa no funciona. ¿Hay alguna manera de hacerlo?
    <input type="hidden" name="cadorna[]" value="1">
    <input type="hidden" name="cadorna[]" value="2">


    Cuando recibas el formulario tendras un array llamado cadorna con 2 elementos.


    Te sirve ?

    Esto es tipico para pasar checkboxes.

    <jl>





    -----------------------------------------------------------------------------------
    <jl>
    Systems Consultant
    Web Design - eCommerce - Consulting
    Buenos Aires - Barcelona
    E-Mail: javier@leyba.com.ar
    http://www.leyba.com.ar


    _________________________________________________________
    Do You Yahoo!?
    Get your free @yahoo.com address at http://mail.yahoo.com
  • Angel Fenoy at Mar 28, 2002 at 10:04 pm

    Dimecres 27 Març 2002 16:55, Ignasi A. Mulet dixit:

    Hola, quería preguntaros si es posible pasar un array como parámetro en
    un campo hidden de un formulario. Si paso variables normales no pasa
    nada, pero si intento pasar un array, de una o varias dimensiones, la
    cosa no funciona. ¿Hay alguna manera de hacerlo?
    Deber usar la función serialize() para convertir el array en una cadena, y
    luego, cuando recibas la cadena, la conviertes de nuevo en array con
    unserilize():

    http://php.net/serialize

    Saludos
    Àngel
  • Ignasi A. Mulet at Mar 31, 2002 at 10:21 am

    Hola, quería preguntaros si es posible pasar un array como parámetro
    en un campo hidden de un formulario. Si paso variables normales no
    pasa nada, pero si intento pasar un array, de una o varias
    dimensiones, la cosa no funciona. ¿Hay alguna manera de hacerlo?
    Deber usar la función serialize() para convertir el array en una
    cadena, y luego, cuando recibas la cadena, la conviertes de nuevo en
    array con unserilize():
    Muchas gracias a todos los que me han contestado sobre el tema, pero
    creo que me quedo con la solución de Angel.

    Sin embargo, la he estado probando y tengo el siguiente problema que no
    sé resolver:

    El array original se llama 'notes', y es bi-dimensional. Por ejemplo, su
    uso es $notes[2][tipus] o $notes[4][codi]...

    Después de hacer el serialize sobre otra variable, al hacer un echo me
    sale la siguiente info:

    a:7:{i:0;a:2:{s:4:"codi";s:1:"1";s:5:"tipus";s:4:"Test";}i:1;a:2:
    {s:4:"codi";s:1:"2";s:5:"tipus";s:9:"Preguntes";}i:2;a:2:{s:4:
    "codi";s:1:"3";s:5:"tipus";s:6:"Teoria";}i:3;a:2:{s:4:"codi";s:1:"4";s:5:
    "tipus";s:2:"PA";}i:4;a:2:{s:4:"codi";s:1:"5";s:5:"tipus";s:2:"PL";}i:5;a:2:
    {s:4:"codi";s:1:"6";s:5:"tipus";s:2:"PC";}i:6;a:2:{s:4:"codi";s:1:"7";s:5:
    "tipus";s:5:"Final";}}

    De momento todo correcto.

    Cuando paso esta variable serializada por un campo hidden de un
    formulario, en el otro script, la variable serializada contiene lo
    siguiente:

    a:7:{i:0;a:2:{s:4:

    Es decir, ha llegado incompleto! Parece demasiada casualidad que no haya
    guardado nada más al llegar a las comillas dobles... ¿Sabéis que puede
    estar pasando?

    Muchas gracias y hasta pronto!
  • Jorge Martínez 'ToRo' at Mar 31, 2002 at 3:38 pm
    $variable = addslashes(serialize($array)); //pasarla

    $variable = unserialize(stripslashes($array)); // recuperarla
    At 05:30 a.m. 31/03/2002 Sunday, you wrote:
    Hola, quería preguntaros si es posible pasar un array como
    parámetro >>en un campo hidden de un formulario. Si paso variables normales no
    pasa nada, pero si intento pasar un array, de una o varias
    dimensiones, la cosa no funciona. ¿Hay alguna manera de hacerlo?
    Deber usar la función serialize() para convertir el array en una
    cadena, y luego, cuando recibas la cadena, la conviertes de nuevo en
    array con unserilize():
    Muchas gracias a todos los que me han contestado sobre el tema, pero
    creo que me quedo con la solución de Angel.

    Sin embargo, la he estado probando y tengo el siguiente problema que no sé
    resolver:

    El array original se llama 'notes', y es bi-dimensional. Por ejemplo, su
    uso es $notes[2][tipus] o $notes[4][codi]...

    Después de hacer el serialize sobre otra variable, al hacer un echo me
    sale la siguiente info:

    a:7:{i:0;a:2:{s:4:"codi";s:1:"1";s:5:"tipus";s:4:"Test";}i:1;a:2:
    {s:4:"codi";s:1:"2";s:5:"tipus";s:9:"Preguntes";}i:2;a:2:{s:4:
    "codi";s:1:"3";s:5:"tipus";s:6:"Teoria";}i:3;a:2:{s:4:"codi";s:1:"4";s:5:
    "tipus";s:2:"PA";}i:4;a:2:{s:4:"codi";s:1:"5";s:5:"tipus";s:2:"PL";}i:5;a:2:
    {s:4:"codi";s:1:"6";s:5:"tipus";s:2:"PC";}i:6;a:2:{s:4:"codi";s:1:"7";s:5:
    "tipus";s:5:"Final";}}

    De momento todo correcto.

    Cuando paso esta variable serializada por un campo hidden de un
    formulario, en el otro script, la variable serializada contiene lo siguiente:

    a:7:{i:0;a:2:{s:4:

    Es decir, ha llegado incompleto! Parece demasiada casualidad que no haya
    guardado nada más al llegar a las comillas dobles... ¿Sabéis que puede
    estar pasando?

    Muchas gracias y hasta pronto!



    ---------------------------------------------------------------------
    Archivo On-line: http://www.phpes.com/
    via news: news://news.phpes.com/
    Manual PHP en español: http://www.php.net/manual/es/
    Para dar de baja la suscripción, mande un mensaje a:
    lista-unsubscribe@phpes.com
  • Ignasi A. Mulet at Apr 2, 2002 at 1:10 pm

    $variable = addslashes(serialize($array)); //pasarla

    $variable = unserialize(stripslashes($array)); // recuperarla
    Lo he hecho tal como me comentas, pero si hago un 'echo' después de la
    primera instrucción, las comillas dobles no han sido escapadas con el
    slash... ¿A qué puede deberse eso?

    No sé si puede afectar, pero en el php.ini tengo a ON las variables
    magic_quotes_gpc y magic_quotes_sybase, mientras que
    magic_quotes_runtime la tengo en OFF.

    Muchas gracias, y espero que me ayuden porque no tengo ni pajolera idea
    de porqué falla el addslashes... :-?

    Ciao!

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupphp-general-es @
categoriesphp
postedMar 27, '02 at 3:46p
activeApr 2, '02 at 1:10p
posts8
users6
websitephp.net

People

Translate

site design / logo © 2022 Grokbase