Я хочу знать, как я могу разместить многомерный массив?
В основном я хочу выбрать пользователя, и у выбранного пользователя будет отправлено письмо и имя для отправки.
Таким образом, выбор 100 пользователей будет иметь электронную почту и имя. Я хочу попасть на PHP, как показано ниже.
$_POST['users'] = array( array(name, email), array(name2, email2), array(name3, email3) );
Есть идеи?
Вы можете назвать свои элементы формы следующим образом:
<input name="users[1][name]" /> <input name="users[1][email]" /> <input name="users[2][name]" /> <input name="users[2][email]" /> ...
Вы получаете идею …
Вот еще один способ: сериализовать массив, отправить и неэтериализовать (шифрование необязательно).
И вот пример, который сработал для меня:
" 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>
как строку запроса.
Этот метод имеет большое преимущество при работе с многомерными массивами.
Ну, тебе придется кое-что сделать. Если вы назовете каждый элемент формы индексом (как предполагает Франц), вы выполняете цикл на стороне PHP.
Если вы хотите использовать Javascript для выполнения цикла, введите свою форму onSubmit (), чтобы создать строку JSON для перехода к PHP. Затем попробуйте PHP получить его так:
json_decode($_POST['users'], true);
Второй аргумент говорит, что он делает массивы вместо анонимных объектов.