2013-06-25 105 views
1

我想設置一個變量等於我的$ _POST變量的子數組之一。

$array[] = $_POST['contact-info']; 
echo $array['email']; 

它不會工作,因爲它回聲NULL。

有什麼建議嗎?

+1

show'print_r($ _ POST)' –

回答

1

您不需要用方括號將這個子數組賦值給一個變量。

$array = $_POST['contact-info']; 
echo $array['email']; 
+0

我試過沒有括號,它給出了相同的NULL值。 – MrGrinst

+0

或當然'echo $ _POST ['contact-info'] ['email'];' – 2013-06-25 21:57:06

+0

您是否使用print_r($ _ POST);? – pvnarula

0

$ _POST根本不是一個多維數組。 echo print_r($_POST,1);會告訴你什麼是$ _POST。使用時,$ _POST將始終由PHP使用鍵(字符串) - 值(字符串)對填充。如果$ _POST確實包含子數組,那麼它可能由您自己或由您正在使用的某個框架填充。

現在我猜測contact-info是您提交表單的表單名稱。閱讀提交的表單時,表單名稱不重要。您可以直接通過發送的字段的名稱訪問發送的數據..

例如,如果您有:

<form name="contact-info" action="yourscript.php" method="post"> 
    Please enter your e-mail address:<br/> 
    <input name="email" type="text" value="" /> 
</form> 

然後在你的PHP腳本,你應該有:

<?php 
    echo "You just entered: " . $_POST['email']; 
?> 
0

$array['email']從未設置。您可以設置陣列像這樣:

$array[] = $_POST['contact-info'];

因此,假如這是你使用$array,那麼你會被訪問電子郵件第一次:

echo $array[0]['email'];

如果你不需要$array是多維的,你可以隨時做:

$array = $_POST['contact-info']; 
echo $array['email']; 
0

As ment在其他地方,電子郵件目前是空的。該陣列的結構應符合形式的話,如果你的表格是

name="contact-info[email]" 

然後在PHP中,你會訪問作爲

$contact_info = $_POST['contact-info']; 
$email = $contact_info['email']; 

OR

$email = $_POST['contact-info']['email']; 

此外,嘗試一下本作調試數組時更清晰一點,它使得更容易發現關聯。

<pre> 
<?php print_r($_POST);?> 
</pre>