Подтвердить что ты не робот

$ _POST Массив из html-формы

Я пытаюсь отправить данные из нескольких флажков (id []) и создать массив "info" в php, чтобы я мог запускать script для каждого значения (однако количество значений может меняться каждый раз), однако сначала я пытаюсь отобразить содержимое каждого значения массива. Я не совсем уверен, как добавить строку массива, чтобы сохранить весь контент в массиве.

HTML

echo("<input name='id[]' type='checkbox' value='".$shopnumb."'>");

мой надежный код обработки в настоящее время -

$info=$_POST['id[]'];
Echo(array_values($info));

что мне нужно сделать, чтобы содержимое, отправленное почтой из флажков формы, заполнило информацию о массиве

любая помощь приветствуется

для уточнения.

4b9b3361

Ответ 1

Изменить

$info=$_POST['id[]'];

к

$info=$_POST['id'];

добавив [] в конец имен полей формы, PHP автоматически преобразует эти переменные в массивы.

Ответ 2

<input name='id[]' type='checkbox' value='".$shopnumb."\'>
<input name='id[]' type='checkbox' value='".$shopnumb."\'>
<input name='id[]' type='checkbox' value='".$shopnumb."\'>


$id = implode(',',$_POST['id']);
echo $id

вы не можете эхо-массива, потому что он просто распечатает массив. Если вы хотите распечатать массив, используйте print_r.

print_r($_POST['id']);

Ответ 3

Вы должны получить массив, как в $_POST ['id']. Поэтому вы должны это сделать:

foreach ($_POST['id'] as $key => $value) {
    echo $value . "<br />";
}

Имена ввода должны быть одинаковыми:

<input name='id[]' type='checkbox' value='1'>
<input name='id[]' type='checkbox' value='2'>
...

Ответ 4

Я не знаю, понимаю ли я ваш вопрос, но может быть:

foreach ($_POST as $id=>$value)
    if (strncmp($id,'id[',3) $info[rtrim(ltrim($id,'id['),']')]=$_POST[$id];

поможет

То есть, если вы действительно хотите иметь другое имя (id [key]) на каждом флажке html-формы (не очень эффективно). Если нет, вы можете просто назвать их все равно, то есть "id" и итерации по (выбранным) значениям массива, например: foreach ($_POST['id'] as $key=>$value)...