2012-08-12 126 views
7

我有一個應用程序,我正在建設,我被困在某個點。如何通過一個URL傳遞一個變量的多個值

我試圖通過有多個值的變量。所以我的網址將如下所示:

localhost/report.php?variable=value1, value2, value3 

問題是我不知道我該如何做到這一點。這些變量將用於從數據庫中檢索數據。我使用PHP和沒有Javascript。

任何幫助將是偉大的!

編輯:
下面是HTML我在我的網頁其中的變量選擇:

<select name="types" size="19" multiple> 
    <option value="all" selected>All Types</option> 
    <option value="book" selected>Books</option> 
    <option value="cd" selected>CD</option> 
</select> 

所以用戶可以選擇書籍和CD,我也需要通過這兩個值在「類型」變量中。

+1

串行數組怎麼樣? – 2012-08-12 19:31:57

+0

您是否在使用一個來發送此消息?如果是這樣的話,php應該將它作爲$ _POST ['types']中的數組來獲取? – wgcrouch 2012-08-12 19:41:02

+0

@wgcrouch我正在使用表單發送它。但是當我發送它的URL最終像'report.php?variable = value1&variable = value2' – mickburkejnr 2012-08-12 19:42:07

回答

5

如前所述在https://stackoverflow.com/a/2407401/1265817,您可以使用此方法。

如果你想PHP對待$ _GET [「選擇2」作爲一組選項只加方括號這樣選擇元素的名稱:<select name="select2[]" multiple …

然後你就可以存取權限在你的PHP數組腳本

<?php 
header("Content-Type: text/plain"); 

foreach ($_GET['select2'] as $selectedOption) 
    echo $selectedOption."\n"; 
7

使用&

localhost/report.php?variable=value1&val2=value2&val3=value3 

是你所追求的?

+3

這是多個變量,而不是一個具有多個值的變量 – 2012-08-12 19:34:41

+0

排序,我真正需要的是將所有值添加到該變量。所以在PHP代碼中我可以使用'$ variable = $ _GET ['variable']',這樣我就可以在查詢中使用$變量。 – mickburkejnr 2012-08-12 19:35:29

+0

如果兩個頁面都在同一個域上,那麼可以使用'Session'變量? 'Session [「myStringName」] = someObject'然後通過轉換爲您需要的方式來讀取它。對不起,但我的PHP並不好,但。 – jp2code 2012-08-12 19:38:24

2

嘗試localhost/report.php?variable[]=value1&variable[]=value2會給你一個數組在PHP

4

有一個簡單的方法在PHP中做到這一點通過調用http_build_query(),並通過自己的價值觀作爲一個索引數組。你會這樣做:

$value_array = array('types' => array('book', 'cd')); 
$query = http_build_query($value_array); 

然後生成url使用$query

2

我覺得你有你的網址正確

localhost/report.php?variable=value1,value2,value3 

然後使用PHP來獲取所有值的report.php頁

$variable = explode(",", $_GET["variable"]); 

// Output 
$variable[0] = "value1"; 
$variable[1] = "value2"; 
$variable[2] = "value3"; 
0

。您可以使用serialize像:

echo '<a href="index.php?var='.serialize($array).'"> Link </a>'; 
使用 unserialize

,並得到數據:

$array= unserialize($_GET['var']); 

serialize函數爲您提供可存儲(字符串)數組類型的版本,並且可以通過反序列化函數進行恢復。

+0

有趣的想法。如果我要加入書籤或複製一個'index.php?var ='。serialize($ array)。''鏈接,我可以稍後重新加載它,或者序列化的數據會丟失嗎? – jp2code 2013-12-09 14:30:52

相關問題