RE: Re: Passing an Array in HTML

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Yeah, I wouldn't recommend passing an array via an HTML form, it just
seems clunky.  I'd definitely use $_SESSION variables.

BUT.. If you absolutely had to pass this array via a HIDDEN form
element, I'd recommend trying serialize() and unserialize()

>From the PHP manual:
"serialize() returns a string containing a byte-stream representation of
value that can be stored anywhere. 

This is useful for storing or passing PHP values around without losing
their type and structure. 

To make the serialized string into a PHP value again, use unserialize().
serialize() handles all types, except the resource-type. You can even
serialize() arrays that contain references to itself. References inside
the array/object you are serialize()ing will also be stored."

I couldn't say it any better than that.

http://us2.php.net/manual/en/function.serialize.php

-TG

> -----Original Message-----
> From: Vail, Warren [mailto:Warren.Vail@xxxxxxxxxx] 
> Sent: Monday, November 22, 2004 7:13 PM
> To: 'MikeA'; php-windows@xxxxxxxxxxxxx
> Subject: RE:  Re: Passing an Array in HTML
> 
> 
> Only real array I've ever seen in HTML is one passed to 
> JavaScript.  Anyone
> else found another way?
> 
> I suppose you could do it as a pull down list (preselecting 
> all selections),
> but risk is your user will screw up the data by clicking on 
> the list, but
> that struck me as kind of hokey (a technical term if the 
> highest order ;-).
> 
> Warren Vail
> 
> 
> > -----Original Message-----
> > From: news [mailto:news@xxxxxxxxxxxxx] On Behalf Of MikeA
> > Sent: Monday, November 22, 2004 4:08 PM
> > To: php-windows@xxxxxxxxxxxxx
> > Subject:  Re: Passing an Array in HTML
> > 
> > 
> > So the only way to do it is by separating all of the elements 
> > instead of sending it as one big array?  Hmmm.  There is no 
> > better way to pass an array?
> > 
> > Thanks.
> > 
> > Mike
> > 
> > 
> > "Vail, Warren" <Warren.Vail@xxxxxxxxxx> wrote in message 
> > news:72138202E59CD6118E960002A52CD9D2178E2BF6@xxxxxxxxxxxxxxxx
> > ab.com...
> > > You can pass array data by adding it to the form (probably 
> > not a good 
> > > practice, I would choose sessions to pass the data, but 
> incase you 
> > > have
> > some
> > > need that is ok, try the following);
> > >
> > > // To add the data to your form;
> > >
> > > Foreach($data_old as $k => $v) echo "<input type=hidden 
> > > name=\"dataold[".$k."]\" value = \"".$v."\">\n";
> > >
> > > // to get the data returned from the form add the 
> following to the 
> > > module specified in the form action field
> > >
> > > $data_old = $_POST["dataold"];
> > >
> > > // $data_old now contains the array contents
> > >
> > > Haven't tried this but I suspect it should work; anyone 
> aware of a 
> > > limit
> > on
> > > the number of hidden elements in a form?
> > >
> > > Hope this helps,
> > >
> > > Warren Vail
> > >
> > >
> > > > -----Original Message-----
> > > > From: news [mailto:news@xxxxxxxxxxxxx] On Behalf Of MikeA
> > > > Sent: Monday, November 22, 2004 3:50 PM
> > > > To: php-windows@xxxxxxxxxxxxx
> > > > Subject:  Passing an Array in HTML
> > > >
> > > >
> > > > I am reading a file into an array ($data_old =
> > > > file("config.old");) and then processing it as I receive 
> > information 
> > > > from the user.  As we all know, the Internet is 
> > stateless, so I need 
> > > > to read back in the array after I get my answer.
> > > >
> > > > Array definitions are
> > > >
> > > > $data_old = array();
> > > > $data_new = array();
> > > > $data_count = 0;
> > > >
> > > > The output code is
> > > >
> > > > echo "<P><input type='hidden' name='data_old' 
> > > > value='".$data_old."'>"; echo "<P><input type='hidden' 
> > > > name='data_old' value='".$data_new."'>"; echo "<P><input 
> > > > type='hidden' name='data_count' value=".$data_count.">";
> > > >
> > > > and the input code is
> > > >
> > > > $data_old = $_REQUEST['data_old'];
> > > > $data_new = $_REQUEST['data_new'];
> > > > $data_count = $_REQUEST['data_count'];
> > > >
> > > > $data_count is working so I am assuming my problem is the 
> > way that I 
> > > > am passing the array.  How can I pass an array or is it not 
> > > > possible?  I would think that anything can be passed as 
> > it is just 
> > > > bits of data (pun intended). So what goes out should come 
> > in.  But, 
> > > > for some reason, that is not happening.
> > > >
> > > > Any help, suggestions, and guidance is appreciated.
> > > >
> > > > Mike

-- 
PHP Windows Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[Index of Archives]     [PHP Home]     [PHP Users]     [PHP Database Programming]     [PHP Install]     [Kernel Newbies]     [Yosemite Forum]     [PHP Books]

  Powered by Linux