Я пытаюсь отправить данные из нескольких флажков (id []) и создать массив «info» в php, чтобы я мог запускать скрипт для каждого значения (однако количество значений может меняться каждый раз), однако сначала я пытаюсь отображать содержимое каждого значения массива. Я не совсем уверен, как добавить строку массива, чтобы сохранить весь контент в массиве.
HTML
echo("<input name='id[]' type='checkbox' value='".$shopnumb."'>");
мой надежный код обработки в настоящее время –
$info=$_POST['id[]']; Echo(array_values($info));
что мне нужно сделать, чтобы содержимое, отправленное по почте из флажков формы, заполнило информацию о массиве
любая помощь очень ценится
для уточнения.
+ Изменить
$info=$_POST['id[]'];
в
$info=$_POST['id'];
добавив []
в конец имен полей формы, PHP автоматически преобразует эти переменные в массивы.
<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']);
Вы должны получить массив, как в $ _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'> ...
Я не знаю, понимаю ли я ваш вопрос, но, может быть:
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)...