[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Отправить массив значений из полей и принять его
kav1
Здравствуйте.

Отправляю вот таким образом массив значений из формы:


<form action="add.php" method=post enctype="multipart/form-data">
<input
type="number" min="0" name="input_name[]" size="4" style="border: #000 1px solid; ">
<input
type="submit" id="submit" value="Добавить" style="background-color:#D0CFCE;border: #000 1px solid;" name="submit">
<form>


и принимаю его в файле add.php:

$a = $_POST['input_name'];

foreach ($a as $arr) {
if ( $arr['pr_code'] === null ) continue;
echo $arr['input_name'] . '<br>';
}


В итоге выводится только первая цифра каждого числа, которые отправлены в массиве input_name[]. То есть если был отправлен массив из чисел 353, 789, 652, в итоге на экран будет выведено - 3,7,6.

Как это вылечить?
AllesKlar
Наверное, сначал заглянуть сюда:
var_dump($_POST['input_name']);


_____________
[продано копирайтерам]
kav1
Цитата (AllesKlar @ 24.04.2014 - 14:18)
Наверное, сначал заглянуть сюда:
var_dump($_POST['input_name']);

Cпасибо, что откликнулись.

Сделал вывод дампа, получается вот такое:

array(10) { [0]=> string(1) "3" [1]=> string(4) "5765" [2]=> string(2) "55" ....


то есть, как видите, значения не урезаются до первой цифры, но после вот такого:

$a = $_POST['input_name'];

foreach ($a as $arr) {
if ( $arr['input_name'] === null ) continue;
echo $arr['input_name'] . '<br>';
}


Выводится не 5765 и 55 и т.д., а 5 и 5, т.е. первые цифры.
nugle
а если так?
$a = $_POST['input_name'];

foreach ($a as $k => $v) {
echo $v. '<br>';
}

kav1
Нашел косяк, господа. Надо было делать так:

echo $arr . '<br>';


а не

echo $arr['input_name'] . '<br>';
kav1
Еще такой вопросик, как вывести данные из двумерного массива так, чтобы они были в виде таблицы?

Вот есть двумерный массив:

$a['input_name'] = $_POST['input_name'];
$a['pr_code2'] = $_POST['pr_code2'];

с ним все нормально, команда var_dump показывает, что все хорошо)

С помощью foreach я могу выводить список значений первого столбца (input_name), либо второго (pr_code2).

Делаю я это так (для столбца input_name):

foreach ($a['input_name'] as $arr) {
if ( $arr['input_name'] === null ) continue;
echo $arr . '<br>';
}



Как мне вывести в таком виде:

первый элемент столбца input_name - первый элемент столбца pr_code2
второй элемент столбца input_name - второй элемент столбца pr_code2
третий элемент столбца input_name - третий элемент столбца pr_code2
....

?
AllesKlar
for($i = 0; .......)
{
.....
}


_____________
[продано копирайтерам]
Akarapidoz
опять у тебя здесь ошибка
если ты берёшь из массива четко $a['input_name'] и передаёшь его значения в $arr, то обращаться к $arr['input_name'] будет уже неправильно, если только нет вложенного массива в $а с ключом ['input_name'], но у тебя такого нет.
foreach ($a['input_name'] as $arr) {
if ( $arr === null ) continue;
echo $arr . '<br>';
}


_____________
Прошу критиковать, если что-то не так.
Akarapidoz
Цитата
Как мне вывести в таком виде:

первый элемент столбца input_name - первый элемент столбца pr_code2
второй элемент столбца input_name - второй элемент столбца pr_code2
третий элемент столбца input_name - третий элемент столбца pr_code2
....


foreach ($a as $arr) {
if ( $arr === null ) continue;
echo $arr['input_name'] .'|'. $arr['pr_code2']. '<br>';
}


_____________
Прошу критиковать, если что-то не так.
Быстрый ответ:

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