У меня есть 10 полей ввода, которые являются необязательными для заполнения пользователем и динамически добавляются через jQuery после нажатия «Добавить другое поле». Они названы так:Обработка полей ввода по номеру
<input name="custom_0" type="text" placeholder="Fill this out...">
<input name="custom_1" type="text" placeholder="Fill this out...">
<input name="custom_2" type="text" placeholder="Fill this out...">
...
<input name="custom_9" type="text" placeholder="Fill this out...">
Затем я использую JQuery Ajax для сериализации их и отправить его в PHP для проверки:
$(document).on("submit", "form", function(event) {
event.preventDefault();
$.ajax({
url: 'php/form_handler.php',
type: 'POST',
dataType: 'json',
data: $(this).serialize(),
success: function(data) {
alert(data);
}
});
});
Вот PHP я прямо сейчас. Он содержит цикл, который в 10 раз и возвращает ошибку, если поле не установлено:
<?php
$errors = array();
for ($i = 0; $i < 10; $i++) {
if(isset($_POST["custom_$i"])) {
// input is set, continue verification code...
} else {
$errors["custom_$i"] = "ERROR!";
}
}
// code to echo back errors
?>
У меня проблема сейчас является то, что если пользователь только заполнил 2 из 10 входов, она будет все равно возвращают ошибку для входов 3-10, даже если эти входы никогда не были установлены или заполнены.
Например, если пользователь заполнил только эти входы, а затем отправил форму, он вернет ошибку для входов custom_2
в custom_9
. Почему и как я могу это исправить?
<input name="custom_0" type="text" placeholder="Fill this out...">
<input name="custom_1" type="text" placeholder="Fill this out...">
Я не знаю лучшего подхода к этой динамической форме – patryk
, если ключ является числовым, можно было бы бороться с while или для циклов, но если ключи являются словами ... как пользовательские ["name"] или custom [ «возраст»] ... foreach похож на швейцарский армейский нож –
Какие значения будут $ stuff be? – Bagwell