tags:

views:

71

answers:

7

how to send array through url in PHP?

I have an array of product ids i want to use these id through url because this is the osCommerce needs it in which i am working in, how can i do it?

Generally osCommerce asks for the single product insertion which in turn gives me back a product id which i pass into the url and get it in shopping cart where i am shown this added product, but now i have multiple products added in first page with different generated product ids and i have to display these products the same way they are displayed in genaral, for which i will need all these generated ids here in url

+1  A: 

You can either serialize() it or send it as ?a[]=1&a[]=val2&someOtherArg=val. This will give a $_GET array like:

array(
    'a' => array(
        0 => '1',
        1 => 'val2',
    ),
    'someOtherArg' => 'val'
)

Do note, however, that you should probably keep your entire query below ~2k characters. (more)

jensgram
+3  A: 

?arr[]=abc&arr[]=pqr&arr[]=xyz&arr[]=xxx

sushil bharwani
A: 

If you are POST-ing data, then name your fields with PHP array-style syntax:

<input type="text" name="myArray[]" value="A">
<input type="text" name="myArray[]" value="B">
<input type="text" name="myArray[]" value="C">

If you want to pass the data in a GET request, you can separate the data and split it server side using explode:

page.php?myData=A,B,C,D

...

$myArray = explode(',', $_POST['myData']);
Sohnee
A: 

It should be sufficient to encode them like this:

http://your.url/page.php?myArray[0]=val1&amp;myArray[1]=val2

Palantir
+5  A: 

Your looking for http_build_query().

Example from php.net:

$data = array('foo'=>'bar',
              'baz'=>'boom',
              'cow'=>'milk',
              'php'=>'hypertext processor');

echo http_build_query($data);
// foo=bar&baz=boom&cow=milk&php=hypertext+processor

echo http_build_query($data, '', '&amp;');
// foo=bar&amp;baz=boom&amp;cow=milk&amp;php=hypertext+processor
Sarfraz
A: 

If you already have the product IDs in an array, then you can use the http_build_query() function, which will encode the array like thus:

http://www.example.com/?pid[]=1&amp;pid[]=2&amp;pid[]=3 ...

Hope that helps.

Martin Bean
A: 

well what i would do is json_encode(php json) the array and assign that to a variable in php. you can then urlencode the variable to send it via the url. On the other end you can json_decode. Do look up for json if you are not aware of it. its very powerful and useful though.

bharath