2013-06-25 3 views
1

Я пытаюсь установить переменную, равную одной из подмассивов моей переменной $ _POST.

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

Это не сработает, хотя он повторяет NULL.

Любые предложения?

+1

шоу 'print_r ($ _ POST)' –

ответ

1

Вам не нужны квадратные скобки для назначения этой подматрицы переменной.

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

Я пробовал без скобок и это дает то же значение NULL. – MrGrinst

+0

или, конечно, 'echo $ _POST ['contact-info'] ['email'];' –

+0

Вы использовали print_r ($ _ POST) ;? – pvnarula

0

$ _POST просто не многомерный массив. echo print_r($_POST,1); покажет вам, что именно находится в $ _POST. При использовании $ _POST всегда будет заполняться для вас PHP с помощью пар ключей (string) - value (string). Если $ _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

в MENT в другом месте электронная почта в настоящее время пуста. Структура массива должна совпадать с формой так, если ваша форма

name="contact-info[email]" 

Тогда в PHP вы бы получить доступ, что, как

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

ИЛИ

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

Кроме того, попробуйте это для немного более ясность при отладке массива, это упрощает определение ассоциаций.

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