Как передать значения массива в строку запроса в php - PullRequest
0 голосов
/ 12 мая 2011

Мне нужна ваша помощь.,

Как передать значения массива в строку запроса ...

<?php 
                foreach ( $Cart->getItems() as $order_code=>$quantity ) :
                $pname[]= $Cart->getItemName($order_code);
                $item[]= $Cart->getItemPrice($order_code);
                $qty[]=$quantity;
                endforeach;
                ?>
                <form action='expresscheckout.php?amt=<?php echo $total_price; ?>&item_name=<?php echo $pname; ?>&unit=<?php echo $item; ?>&quan=<?php echo $qty; ?>' METHOD='POST'>
<input type='image' name='submit' src='https://www.paypal.com/en_US/i/btn/btn_xpressCheckout.gif' border='0' align='top' alt='Check out with PayPal'/>
</form>

Это мой пример кода. Для приведенного выше примера кода у меня естьпередать строку запроса по URL-адресу моего действия, который является expresscheckout.php? amt = 100. и т. д. ... значения идут в $ pname [], $ item [], $ qty [].

Ожидается вывод в expresscheckout.php

expresscheckout.php? Pname = product1, product2 & item = item1, item2 & qty = 1,2,3 .... вот так ....

Заранее спасибо ....

Ответы [ 3 ]

10 голосов
/ 12 мая 2011

Для передачи значений массива вы должны использовать [].Например,

<form method="post" action="path to script">
<input type="checkbox" id="colors[]" value="red" /> Red
<input type="checkbox" id="colors[]" value="blue" /> Blue
<input type="checkbox" id="colors[]" value="green" /> Green
<input type="checkbox" id="colors[]" value="yellow" /> Yellow
</form>

И вам нужно использовать это в PHP

$colors=$_POST['colors']; //takes the data from a post operation...
$query=INSERT INTO colors VALUES('$colors');
0 голосов
/ 16 мая 2011

Вам нужно сериализовать ваш массив

сериализация в php

Создает хранимое представление значение

Это полезно для хранения или передачи PHP значения вокруг без потери их тип и структура.

Чтобы преобразовать сериализованную строку в Снова значение PHP, используйте unserialize ().

ref: -

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

http://www.php.net/manual/en/function.unserialize.php

* * Пример 1 022
$my_array= (array('val1', 'val2','val3');

server.php?query_string=serialize($my_array)

на странице сервера

$query_string= unserialize($_REQUEST['query_string']);

Теперь это будет в формате массива

Надеюсь, это поможет вам

0 голосов
/ 12 мая 2011

По сути, вам просто нужно использовать функцию PHP implode , чтобы превратить массив в список через запятую. то есть для массива $ item:

$item = array('item1', 'item2');
echo implode(',', $item);

Будет выводить:

item1,item2

Итак, что-то вроде этого должно напечатать строку запроса, аналогичную той, которую вы хотите:

echo 'pname='.implode(',', $pname).
     '&item='.implode(',', $item).
     '&qty='.implode(',', $qty);
...