Я читал о массивах, созданных $_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.
Для меня важно то, что я делаю это правильно, не создавая ничего небезопасного.
Есть много способов сделать это.
Один будет:
<?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
массив для хранения дополнительной информации.
Это хороший вопрос ~
Я думаю, что он может использовать только другой атрибут имени для радио при использовании формы для отправки пакетов http ~