[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Извлечь из $_POST элементы массива
happyserge
Доброго времени суток, уважаемые соклановцы :)

Не буду приводить много лишнего кода... Опишу суть вопроса.
Я считываю из <form> значения и передаю их как массив элементов на нужную страницу. Т.е. на index.php у меня имеется $area-инпутов (количество задаётся юзером) для ввода текста.

echo '<form action = "test.php" method = "post" name = "form2" target = "_post">';
for ($i = 0; $i < $area; $i++)
{
echo "Area № $i";
echo '<input type = "text" name = "area[]" value = "" size = "32" maxlength = "30">';
echo '<br>';
}
echo '<input type="submit" value="Ok" />';
echo '</form>';


Со страницы, которой была передана инфа (в моём случае страница test.php, input-ов было два) я вызываю следующую функцию:

echo '<pre>';
print_r($_POST);
echo '</pre>';


Получаю что-то вроде:

Array
(
[
area] => Array
(
[
0] => номер раз
[1] => номер два
)
)


Т.е. массив area передался и принялся страницей test.php верно, а теперь... Внимание вопрос!

Как вывести с помощью echo каждый элемент массива area?
Как получить получить доступ к каждому элементу этого массива через индексы?



Спустя 3 минуты, 47 секунд (13.02.2011 - 20:15) Lenarfate написал(а):
foreach($area as $key => $val)
{
echo $val;
}

Спустя 1 час, 48 минут, 30 секунд (13.02.2011 - 22:04) happyserge написал(а):
Всмысле? Ничего не понял!
Как относится $val и $key к данным, которые лежат в $_POST - ?

Спустя 24 минуты, 33 секунды (13.02.2011 - 22:28) vn214 написал(а):
$_POST - массив

Спустя 20 минут, 7 секунд (13.02.2011 - 22:49) Invis1ble написал(а):
happyserge
Цитата
Всмысле? Ничего не понял!

почитай про foreach и поймешь

Спустя 1 час, 44 минуты, 39 секунд (14.02.2011 - 00:33) happyserge написал(а):
foreach($area as $key => $val)
{
echo $val;
}

что такое $key и $val и почему у меня появляется ошибка:

Warning: Invalid argument supplied for foreach() in C:\Server\www\test\test.php
on line 23

line 23 - foreach($area as $key => $val)

Спустя 9 минут, 1 секунда (14.02.2011 - 00:42) Lenarfate написал(а):
переведи ошибку. где ты инициализируешь переменную $area? покажи

Спустя 7 минут, 41 секунда (14.02.2011 - 00:50) happyserge написал(а):
Дело в том, что $area.. Блин.. Смарите..

Страница index.php - на ней я собираю данные из input-ов и по нажатию кнопки отправляю их методом POST на страницу test.php.

На странице test.php мне нужно как-то этими данными манипулировать, допустим для начала вывести на экран.

<?php

echo '<form action = "test.php" method = "post" name = "form2" target = "_post">';
for ($i = 0; $i < $area; $i++)
{
echo "Email № $i";
echo '<input type = "text" name = "area[]" value = "" size = "32" maxlength = "30">';
echo '<br>';
}
echo '<input type="submit" value="Ok" />';
echo '</form>';

?>

Вот после этого по нажатию на Ok данные, введённые в input-ы идут на test.php - вопрос - КАК получить доступ к каждому из массива email[]?

В обычном программировании, к которому я привык, я сделал бы просто:

for (int i = 0; i < array.length; i++)
{
System.out.println(""+array[i]);
}


Как это сделать в PHP?

Спустя 2 минуты, 45 секунд (14.02.2011 - 00:53) Lenarfate написал(а):
цикл foreach. читай мануал.а откуда взялась $area, ты так и не сказал. инициализируй ее сначала так
$area = !empty($_POST['area']) ? $_POST['area'] : null;

Спустя 1 минута, 34 секунды (14.02.2011 - 00:54) happyserge написал(а):
Как где? Он же из

<input type = "text" name = "area[]" value = "" size = "32" maxlength = "30">


берётся.

Спустя 1 минута, 43 секунды (14.02.2011 - 00:56) Lenarfate написал(а):
нет, не берется. я тебе уже написал как сделать

Спустя 3 минуты, 33 секунды (14.02.2011 - 00:59) happyserge написал(а):
Я ж смотрел на странице test.php при помощи:

echo '<pre>';
print_r($_POST);
echo '</pre>';


Мне пишет:

Array
(
[
area] => Array
(
[
0] => номер раз
[1] => номер два
)
)


Следовательно [area] уже на test.php есть - осталось к нему правильно обратиться.

Написал:

$area = !empty($_POST['area']) ? $_POST['area'] : null;

foreach($area as $key => $val)
{
echo $area;
}


Warning: Invalid argument supplied for foreach() in C:\Server\78.30.211.148\test\test.php on line 23

Т.е. на строке foreach($area as $key => $val)

Спустя 4 минуты, 18 секунд (14.02.2011 - 01:04) happyserge написал(а):

$area = !empty($_POST['area']) ? $_POST['area'] : null;

foreach($area as $key => $val)
{
echo $val;
}


Вроде работает!

Спустя 6 минут, 54 секунды (14.02.2011 - 01:11) happyserge написал(а):
А теперь вопрос. Если есть двумерный массив - как получать доступ к элементам по индексам? Т.е. надо элемент из первой строки и первого столбца элемент взять и записать допустим в Excel файл в ячейку.

Т.е. по аналогии

int chislo = matrica[i][j].

Спустя 29 минут, 16 секунд (14.02.2011 - 01:40) Invis1ble написал(а):
точно также - $value = $array[$i][$j]

Спустя 7 минут, 56 секунд (14.02.2011 - 01:48) happyserge написал(а):
Спасибо! smile.gif Всё работает! Огромный + Вам!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.