2013-01-09 49 views
0

我正在嘗試發送一個數組作爲select中的選項的值,但我無法在發送表單後訪問數據。傳遞數組作爲表單中的選項值

echo '<select id="domainResults_domaines" name="domainResults_domaines">'; 
foreach($domainsFound as $domain){ 
    echo '<option value="'.$domain.'">'.$domain['domaine'].'</option>'; 
} 
echo '</select>'; 

$domain數組包含2個值和我希望能夠發送表單之後訪問兩個。有沒有辦法發送數組作爲值或有另一種方式來傳遞2個變量在一個單一的選項?

感謝您的幫助。

回答

1

嘗試:

echo '<select id="domainResults_domaines" name="domainResults_domaines">'; 
foreach($domainsFound as $key=>$value){ 
    echo '<option value="'.$key.'">'.$value.'</option>'; 
} 
echo '</select>'; 

退房PHP foreach

+0

我使用這種方法來傳遞密鑰作爲值並添加隱藏的輸入來傳遞我的變量。通過這種方式,我可以使用密鑰爲選定的域獲取正確的隱藏輸入。可能不是最有效的方法,但它工作得很好。 – oliboon

1

值必須是字符串,您可以使用類似json_encode的值來設置值並將json_decode返回到服務器端。

foreach($domainsFound as $domain){ 
    echo '<option value="'.htmlspecialchars(json_encode($domain)).'">'.$domain['domaine'].'</option>'; 
} 
+0

我只是試圖做到這一點,它刪除了源代碼中的字符串轉換通知數組。然而,在我發送表單之後,我做了'var_dump(json_decode($ _ POST ['domainResults_domaines']));'但是這給了我NULL。 – oliboon

+0

小心一點。 'json_encode'將經常包含''''和''' –

+0

@OlivierParenteau我在示例中添加了htmlspecialchars,以便正確轉義。如果這不起作用,並且只需要這些值,請嘗試按如下所示進行操作: implode(',',array_values($ domain));然後再次在服務器上分割這個字符串。 –

相關問題