如何在php中的查询字符串上传递数组值

时间:2011-05-12 07:39:08

标签: php arrays query-string

我需要你的帮助。

如何在查询字符串中传递数组值...

<?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>

这是我的代码示例。对于上面的示例代码,我必须在我的动作网址上传递查询字符串,即expresscheckout.php?amt = 100.等...值在$ pname []下,$项[],$数量[]。

期望输出在expresscheckout.php

expresscheckout.php?pname = product1,product2&amp; item = item1,item2&amp; qty = 1,2,3 ....喜欢这个....

提前致谢....

3 个答案:

答案 0 :(得分:10)

要传递数组值,您应该使用[]。 对于前。

<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');

答案 1 :(得分:0)

基本上,您只需要使用PHP的implode函数将数组转换为以逗号分隔的列表。即对于$ item数组:

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

将输出:

item1,item2

所以,像这样的东西应该打印一个类似于你想要的查询字符串:

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

答案 2 :(得分:-1)

您需要序列化数组

在php中序列化

  

生成可存储的代表   值

     

这对存储或传递很有用   PHP的价值观不会失去他们的   类型和结构。

     

将序列化字符串变为   再次使用PHP值,使用unserialize()。

参考: -

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

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

实施例

$my_array= (array('val1', 'val2','val3');

server.php?query_string=serialize($my_array)

在服务器页面

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

现在它将采用数组格式

我希望这可以帮助你