HTML — массивы PHP $ _POST с несколькими строками

Я читал о массивах, созданных $_POST в PHP. Я знаю, что если я отправлю форму со следующими данными ID, Name, Date Я закончу с массивом, который включает в себя $_POST = array('IDNo', 'Name', 'Date', 'State'),
Дело в том, что я пытаюсь добраться до того, что у меня будет несколько экземпляров IDNo, Name, Date, State представлены одновременно.

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

<form method="post" action="test.php">
<input type="hidden" name="IDNo" />
<input type="text" name="Name" />
<input type="text" name="Date" />
<input type="radio" name="State1" />

<input type="hidden" name="IDNo" />
<input type="text" name="Name" />
<input type="text" name="Date" />
<input type="radio" name="State2" />

<input type="hidden" name="IDNo" />
<input type="text" name="Name" />
<input type="text" name="Date" />
<input type="radio" name="State3" />

<input type="submit" value="Test Me" />
</form>

Вы заметите, что у радиовхода есть уникальное имя для каждой строки. Это связано с некоторыми jquery, реализованными на странице. я видел IDNo[] а также Name[] и т. д., так как это создаст массив в массиве $ _POST, но мое уникальное имя входа на радио не будет работать с этим, так как каждый вход на радио будет отдельным массивом

Будет ли лучше добавить IDNo или номер строки к каждому входному имени, или есть другой способ решения этой проблемы, которого я просто не видел?

Возможно, изменив State1, чтобы state[1] и меняется IDNo, Name, Date в ID[1], Name[1], Date[1] в HTML.
Для меня важно то, что я делаю это правильно, не создавая ничего небезопасного.

2

Решение

Есть много способов сделать это.
Один будет:

<?php $states = array(1,2,3); ?>
<form method="post" action="test.php">
<?php foreach ( $states as $state ) : ?>
<input type="hidden" name="<?php echo 'state['.$state.']'; ?>[IDNo]" />
<input type="hidden" name="<?php echo 'state['.$state.']'; ?>[Name]" />
<input type="hidden" name="<?php echo 'state['.$state.']'; ?>[Date]" />
<input type="hidden" name="<?php echo 'state['.$state.']'; ?>" />
<?php endforeach; ?>
<input type="submit" value="Test Me" />
</form>

Вы можете получить доступ к этим значениям с помощью кода, как $_POST['state'][1]['Name']

Вы можете расширить $states массив для хранения дополнительной информации.

4

Другие решения

Это хороший вопрос ~

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

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector