|
|
|
| есть форма, которая содержит к примеру такие поля
<input type="text" name="title">
<input type="text" name="articul">
|
таких полей может быть определенное количество
<input type="text" name="title">
<input type="text" name="articul">
<input type="text" name="title">
<input type="text" name="articul">
<input type="text" name="title">
<input type="text" name="articul">
|
как их обработать, то есть чтобы скрипт выводил все данные из этих полей
к примеру:
монитор - 568598
мышь - 2164456
клавиатура - 456487
у меня почему то, массив POST формы содержит только одно последнее значение, в данном случаи клавиатура - 456487, что не так? | |
|
|
|
|
|
|
|
для: scva
(13.09.2010 в 22:38)
| | А показать обработчик? | |
|
|
|
|
|
|
|
для: neadekvat
(13.09.2010 в 22:59)
| | примерно так
<?
$result = count($title);
for ($i = 0; $i <= $result; $i++)
{
echo '<tr>
<td>
'.$title.'
</td>
<td>
'.$articul.'
</td>';
}
?>
|
| |
|
|
|
|
|
|
|
для: scva
(13.09.2010 в 23:19)
| | Что значит примерно? Покажите обработчик, который вы используете. | |
|
|
|
|
|
|
|
для: scva
(13.09.2010 в 22:38)
| | >> у меня почему то, массив POST формы содержит только одно последнее значение, в данном случаи клавиатура - 456487, что не так?
так и будет.
можешь называть поля
<input type="text" name="title">
<input type="text" name="articul[]">
<input type="text" name="title[]">
<input type="text" name="articul[]">
<input type="text" name="title[]">
<input type="text" name="articul[]">
|
ну а потом print_r($_POST);
и разберешься | |
|
|
|
|
|
|
|
для: WapMorgan
(13.09.2010 в 23:20)
| | дело пошло , теперь как это все вывести? | |
|
|
|
|
|
|
|
для: scva
(13.09.2010 в 23:43)
| | Кого, куда, зачем? | |
|
|
|
|
|
|
|
для: sim5
(13.09.2010 в 23:44)
| | <?
$result = count($title);
for ($i = 0; $i <= $result; $i++)
{
echo '<tr>
<td>
'.$title.'
</td>
<td>
'.$articul.'
</td</tr>';
}
?>
и тд, в зависимости от кол-ва полей | |
|
|
|
|
|
|
|
для: scva
(14.09.2010 в 00:04)
| | Вопрос - вы так пытались сделать уже, и если да, то что получалось? | |
|
|
|
|
|
|
|
для: sim5
(14.09.2010 в 00:14)
| | выводит array | |
|
|
|
|
|
|
|
для: scva
(14.09.2010 в 00:25)
| | Ой как плохо.... Настроить локальный сервер (РНР установки):
1. Вывод всех предупреждений и ошибок
error_reporting = E_ALL & ~E_NOTICE
display_errors = On
2. register_globals указать значение Off, после чего обращаться к переменным как $_POST['имя_переменной'] или $_GET['имя_переменной'] (в зависимости от метода передачи формы). | |
|
|
|
|
|
|
|
для: sim5
(14.09.2010 в 00:52)
| | бля почему все такие умные.
Стоит это у меня все
нет никаких ошибок, выводит только array | |
|
|
|
|
|
|
|
для: sim5
(14.09.2010 в 00:52)
| | вот ошибка
Array to string conversion | |
|
|
|
|
|
|
|
для: scva
(14.09.2010 в 12:57)
| |
<form action="?" method="post">
<input type="text" name="title[]">
<input type="text" name="articul[]">
<input type="text" name="title[]">
<input type="text" name="articul[]">
<input type="text" name="title[]">
<input type="text" name="articul[]">
<input type="submit">
</form>
<?php
print_r($_POST);
?>
|
Оно тебе с самого начала выдаст Array();
А ты попробуй ввести значения и нажать на кнопку.. Результат как в раю | |
|
|
|
|
|
|
|
для: scva
(14.09.2010 в 12:57)
| | Если все стоит и коли вы такой умник, то с какого тогда перепугу:
<? echo '<tr><td>' . $title . '</td>....'
| а не:
<? echo '<tr><td>' . $_POST['title]' . '</td>....'
| ?
И что за ересь так выводить массив? | |
|
|
|
|
|
|
|
для: sim5
(14.09.2010 в 13:38)
| | потому что у меня в начале скрипта стоит
if (isset($_POST['title'])) {$title = strip_tags($_POST['title']);}
| и как вывести массив правильно? | |
|
|
|
|
|
|
|
для: scva
(14.09.2010 в 17:12)
| | Правильно, это как сказать... для чего? Ну во-первых strip_tags, это отдельный разговор. Но бог с ним. Данные вы же получаете не для того, чтобы сразу по их приходу выплюнуть в браузер, а значит должна быть какая-то конкретная задача. Кроме этого, все зависит от того, как у вас организована форма.
Во-первых - все, что вы получили от формы, это уже массив. А если вы именуете одноименные поля формы как массивы, то это будут вложенные массивы.
Организовывать цикл по числу элементов массива некоторых из элементов формы можно конечно, но когда оправдано это, иначе нет смысла.
Вывести массив echo имя_массива, нельзя, это не строка, на что и получена ошибка. А как вывести конкретный массив, то как говорилось выше, все зависит от того, как организована форма, и если вам требуется выводить парами значения title и articul, то лучше именовать имена полей формы так, чтобы эти значения были массивом, которые в свою очередь будут вложены в массив.
Если кроме этих полей форма более ничего не содержит, даже имя кнопки submit, то родителем для них может быть сам массив POST, иначе лучше добавить им массив родитель, например:
<form action="" method="post">
<input type="text" name="fld[0][title]" value="1">
<input type="text" name="fld[0][articul]" value="1">
<input type="text" name="fld[1][title]" value="2">
<input type="text" name="fld[1][articul]" value="2">
<input type="text" name="fld[2][title]" value="3">
<input type="text" name="fld[2][articul]" value="3">
<input type="submit" value="Send">
</form>
| Посмотрите, что содержит в этом случае массив POST.
<?
echo "<pre>";
print_r($_POST);
| А вот так вывести содержимое:
<?
foreach($_POST['fld'] as $val) echo $val['title'] . " - " . $val['articul'] . "<br>";
|
| |
|
|
|
|
|
|
|
для: sim5
(14.09.2010 в 17:42)
| | вот теперь все понял, спасибо что разложили по полочкам | |
|
|
|
|
|
|
|
для: sim5
(14.09.2010 в 00:52)
| | >Ой как плохо.... Настроить локальный сервер (РНР установки):
>1. Вывод всех предупреждений и ошибок
>error_reporting = E_ALL & ~E_NOTICE
Включать нужно и нотайсы. Без них бОльшая половина начинающих ляпов не видна. | |
|
|
|