Многомерный массив сообщения из формы

Я хочу знать, как я могу опубликовать многомерный массив?

В принципе, я хочу выбрать пользователя, и у выбранного пользователя будет отправлено письмо и имя для отправки.

Таким образом, выбор 100 пользователей будет иметь электронную почту и имя. Я хочу попасть на PHP, например следуя

$_POST['users'] = array(
  array(name, email),
  array(name2, email2),
  array(name3, email3)
);

Любые идеи?

Ответ 1

Вы можете назвать свои элементы формы следующим образом:

<input name="users[1][name]" />
<input name="users[1][email]" />
<input name="users[2][name]" />
<input name="users[2][email]" />
...

Вы получаете идею...

Ответ 2

Здесь другим способом: serialize массив, сообщение и unserialize (шифрование необязательно).

И вот пример, который работал у меня:

" send.php":

<input type="hidden" name="var_array" value="<?php echo base64_encode(serialize($var_array)); ?>">

" receive.php":

if (isset($_POST['var_array'])) $var_array = unserialize(base64_decode($_POST['var_array']));

С этим вы можете просто использовать $var_array, как если бы он был разделен между двумя файлами/сеансами. Конечно, в этом send.php должен быть <form>, но вы также можете отправить его в <a> как строку запроса.

Этот метод имеет большое преимущество при работе с многомерными массивами.

Ответ 3

Ну, вам придется кое-что сделать. Если вы назовете каждый элемент формы индексом (как предполагает Франц), вы выполняете цикл на стороне PHP.

Если вы хотите использовать Javascript для выполнения цикла, введите свою форму onSubmit(), чтобы создать строку JSON для перехода к PHP. Затем PHP получит его так:

json_decode($_POST['users'], true);

Второй аргумент говорит, что он делает массивы вместо анонимных объектов.