2016-01-17 52 views
4

我有HTML表單和多個select元素,讓用戶從列表中選擇多個選項進行提交。表單方法是POST,它將表單發佈到PHP文件。我想通了如何echo多種選擇的選項,通過了閱讀本How to get multiple selected values of select box in php?但我無法將這些值寫入每個選項值之間的變量作爲字符串,並具有空間。是否有可能實現這一點,而不使用數組?如何將多個選定的選項分配給PHP變量?

這裏是我的HTML代碼:

<select name="place[]" id="place" multiple> 
    <optgroup label="Ottawa"> 
     <option value="London">London</option> 
     <option value="Toronto">Toronto</option> 
     <option value="Windsor">Windsor</option> 
    </optgroup> 
    <optgroup label="Alberta"> 
     <option value="Brooks">Brooks</option> 
     <option value="Calgary">Calgary</option> 
     <option value="Cold Lake">Cold Lake</option> 
    </optgroup> 
</select> 

這裏是PHP代碼:

<?php 
foreach ($_GET['place'] as $selectedOption) 
    echo $selectedOption."\n"; 
?> 

上面的代碼只echo值而不是它作爲字符串賦值給變量。我可以簡單地使用$locations =而不是echo嗎?

注意:有很多問題和解答顯示如何將選擇值分配給PHP變量但不是多個選項。

+0

如果「形式的方法是POST,它張貼形式到PHP文件」那麼爲什麼你使用'$ _GET ['的地方']'?既然你想將一個數組轉換成一個字符串,爲什麼不使用[implode()](http://php.net/manual/en/function.implode.php)? – j08691

+0

@ j08691我對使用'implode()'沒有任何問題,因爲我是PHP的新手,並且在使用方法。在這種情況下,正確的說法是什麼? –

+1

'$位置=破滅(」」,$ _POST [ '代替'])' – j08691

回答

1

既然你說你正在使用一個POST請求,$_GET['place']將無法​​正常工作。因此,使用$_POST['place']相反,你可以使用implode()粘合在一起的數組的值:

$locations = implode(' ', $_POST['place']); 
相關問題