Не буду приводить много лишнего кода... Опишу суть вопроса.
Я считываю из <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 - ?
Как относится $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 мне нужно как-то этими данными манипулировать, допустим для начала вывести на экран.
Вот после этого по нажатию на Ok данные, введённые в input-ы идут на test.php - вопрос - КАК получить доступ к каждому из массива email[]?
В обычном программировании, к которому я привык, я сделал бы просто:
Как это сделать в PHP?
Страница 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 при помощи:
Мне пишет:
Следовательно [area] уже на test.php есть - осталось к нему правильно обратиться.
Написал:
Warning: Invalid argument supplied for foreach() in C:\Server\78.30.211.148\test\test.php on line 23
Т.е. на строке foreach($area as $key => $val)
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 написал(а):
Спасибо!
Всё работает! Огромный + Вам!
