У меня есть форма, на которой вы можете заполнить несколько полей. Количество полей не фиксировано, но зависит от ввода пользователя.Комбинировать данные после отправки
Упрощенная форма:
<form method="POST" action="post.php">
Field one: <input type="text" name="field[]" /><br />
Field two: <input type="text" name="field[]" /><br />
Field three: <input type="text" name="field[]" /><br />
<br /><br />
Checkbox one: <input type="checkbox" name="check[]" value="1" /><br />
Checkbox two: <input type="checkbox" name="check[]" value="1" /><br />
Checkbox three: <input type="checkbox" name="check[]" value="1" /><br />
<br /><br />
<input type="submit" value="Submit" />
</form>
Проблема я столкнулся, что field one
должны быть в паре с checkbox one
, two
с two
и так далее. Это не звучит сложно, не так ли? Если все проверено и заполнены, это не так:
Array
(
[field] => Array
(
[0] => one
[1] => two
[2] => three
)
[check] => Array
(
[0] => 1
[1] => 1
[2] => 1
)
)
В PHP я мог бы просто связать индексы массива вместе и все хорошо. Проблема, с которой я столкнулся, - это когда вы не выбираете второй флажок. Если вы сделаете это, будет одна запись меньше в check post data
:
Array
(
[field] => Array
(
[0] => one
[1] => two
[2] => three
)
[check] => Array
(
[0] => 1
[1] => 1
)
)
Что это лучший способ справиться с этой ситуацией? Представление Ajax не является вариантом, но JavaScript-манипуляция есть.
Я думал о некотором способе создания массивов в JS на элемент (один, два, три) и отправить эти данные. Вопрос в том, как мне это сделать, или есть лучший (более хороший) способ справиться с этой проблемой?
возможно скрытое текстовое поле для флажков. если флажок установлен, скрытое поле получает значение, если нет, скрытое поле пусто. – Eugen