2013-08-02 73 views
0

我有一個問題,從選擇選項接收陣列數據。請參考下面如何從php中接收數組數據?

下面的代碼是我的html文件

<?php 

    $data = array(
      "id" => "1", 
      "name" => "John" 
    ); 

?> 

<select name="member"> 
    <option value="`<?php echo $data; ?>`">John</option> 
</select> 

這裏是我的PHP文件

$val = $_POST["member"]; 
echo $val["id"]; 
+3

請嘗試重新說出這個問題。 – user1596138

+0

@CORRUPT你在聲明的開頭添加了一個額外的'$'。 var_dump是一個函數,而不是一個變量。 – ILikeTacos

+0

'$ val = $ _POST ['member']'將會是一個字符串,而不是一個數組。所以'$ val ['id']'會失敗。 – ironcito

回答

1

如果你真的想從表單傳遞數組,我強烈建議你使用序列化函數。

所以在你的代碼。

<select name="member"> 
    <option value="`<?php echo serialize($data); ?>`">John</option> 
</select> 
在後端

然後,

$data = unserialize($_POST["member"]); 

試試這個。我希望這有幫助。

0

你的意思是?

<select name="member"> 
    <option value="<?php echo $data['id']; ?>"> 
    <?php echo $data['name']; ?> 
    </option> 
</select> 

因爲在你的代碼,您使用<?php echo $data; ?>不打印在數組中的值,但該字符串Array這是變量的類型。

+0

對不起,我的代碼和我的英語不好。我只想在選項標籤中添加一個數組,我將在後端使用它的索引 – lyhong

0

只需使用該ID並檢查服務器上的其他信息。像這樣(PHP FIDDLE)(http://phpfiddle.org/main/code/mvr-zde

+0

您的小提琴在第二次提交時不起作用,請最好檢查一下。 –

+0

我打算提交一次。只要在if語句下重新添加數據就可以了。 –