如何从url中检索多个值并使用相同的id再次回显它们

时间:2013-09-20 13:36:40

标签: php

我知道这听起来像一个非常明显的问题,但我一直试图找到正确的答案,我无法找到它。 请放轻松我是php的初学者。

这是我从我的购物篮中发送的代码:

// Build the query string
$queryString  = "?cmd=_cart";
$queryString .= "&upload=1";
$queryString .= "&charset=utf-8";
$queryString .= "&currency_code=" . urlencode($config['currencyCode']);

foreach ($jcart->get_contents() as $item) {

    $queryString .= '&Description' .  '=' . urlencode($item['name']);
    $queryString .= '&Amount' .  '=' . urlencode($item['price']);
    $queryString .= '&Shipping' .  '=' . urlencode($item['del']);           

这会输出一个类似的网址:

  

http://www.mysite.php?cmd=_cart&upload=1&charset=utf-8&currency_code=GBP&Description=item1&Amount=419.00&Shipping=0.00&Description=Item2&Amount=354.00&Shipping=0.00

如果我echo $Description我得到:Item2

我想得到:

Item1, Item 2

我怎样才能做到这一点?

欢迎任何帮助。

3 个答案:

答案 0 :(得分:0)

使用相同的名称无法做到这一点。第二个Description将始终覆盖第一个。{/ p>

只需拨打第二个Description2或一个描述其存储描述值的名称

答案 1 :(得分:0)

你做的和以下一样:

 $value = 1;
 $value =2;

当你:

 echo $value;

你显然会得到值2,我相信你知道为什么。这是因为您在网址中有2个描述。所以一个变量超越了另一个变量。而是将数据放入数组中,将其转换为JSON(不确定是否可以直接对其进行urlencode),urlencode将其发送到。

然后解码另一方。

我的观点是“找个工作”

修改 我会发送一个urlencoded JSON对象数组(我从来没有试过urlencode一个数组,这就是为什么我会在我的情况下使用JSON)。但你正在做的问题是网址最终会太长。你只有2件物品,我想知道你会有多少物品。

答案 2 :(得分:0)

尝试使用此功能:

function vars2url($array, $parent = ''){
    $params = array();
    foreach($array as $k => $v){
        if(is_array($v))
            $params[] = vars2url($v, (empty($parent) ? urlencode($k) : $parent . '[' . urlencode($k) . ']'));
        else
            $params[] = (!empty($parent) ? $parent . '[' . urlencode($k) . ']' : urlencode($k)) . '=' . urlencode($v);
    }
    return implode('&', $params);
}

使用示例:

$params = array(
    'cmd' => '_cart',
    'upload' => 1,
    'charset' => 'utf-8',
    'currency_code' => $config['currencyCode'],
    'Description' => array('Item1', 'Item2'));
echo vars2url($params);

结果:

  

CMD = _cart&安培;上传= 1&安培;字符集= UTF-8和; cy_code =安培;描述[0] = ITEM1和安培;描述[1] =项目2