Есть следующий html-код:
<form action="#" method="post">
<div class="ingridients">
<div class="ingridient">
<input type="text" class="product_count" name="ing[]" placeholder="Название продукта">
<label><input type="checkbox" name="ing_to_product[]">Добавить одноименный продукт?</label>
</div>
</div>
<p id="add_ing">Добавить ингредиент</p>
<button name="submit">Отправить</button>
</form>
<script src="/template/js/libs.min.js"></script>
<script>
$('#add_ing').click(function(){
$('.ingridients').append("<div class='ingridient'><input type='text' class='product_count' name='ing[]' placeholder='Название продукта'><label><input type='checkbox' name='ing_to_product[]'>Добавить одноименный продукт?</label></div>");
});
</script>
По клику на "добавить ингредиент" добавляет еще один div ingridient. Нужно отслеживать чекбокс у каждого ингредиента, т.е. если не отмечен - передаем 0, если отмечен - передаем 1. Как правильно это сделать? PHP код обработчика:
$ingridients = $_POST['ing'];
$ing_to_product = $_POST['ing_to_product'];
for ($i=0; $i < count($ingridients); $i++) {
$ing[$i]['ingridient'] = $ingridients[$i];
$ing[$i]['to_product'] = $ing_to_product[$i];
}
Пока что он только склеивает эти 2 массива, но пустое значение checkbox не передается. Видел подобие решения со скрытым input'ом, который передает 0, если чекбокс неактивен. Кто знает решение этой проблемы?
Сейчас не могу вспомнить точно, как это реализовавыл, но, точно помню, что я отслеживал активность check-box. Было примерно так:
if (isset($_POST['ing_to_product[]']))
foreach($_POST['ing_to_product[]'] as $key=>$value)
echo $value.'<BR>';
Думаю так получится:
<div class="ingridients">
<div class="ingridient">
<input type="text" class="product_count" name="ing[]" placeholder="Название продукта">
<input type="hidden" name="ing_to_product[]" value="0">
<label><input type="checkbox" onchange="$(this).parents('.ingridient').find('input[name^=ing_to_product]').val($(this).is(':checked')?1:0)">Добавить одноименный продукт?</label>
</div>
</div>
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Как спарсить заданное пользователем количество сообщений с публичного чата Telegram?