<?php include("database/connect.php"); ?>
<form action = "" method = "post">
<?php
$q = mysqli_query($con,"select * from tbl_user");
while($f=mysqli_fetch_array($q))
{
?>
<input type = "checkbox" name = "ch[]" value = "<?php echo $f['id'];?>"/>
<input type = "number" name = "qty[]"/><br>
<?php
}
?>
<input type = "submit" name = "yy" value = "Submit"/>
</form>
Из приведенного выше кода мне нужно значение количества, если флажок установлен.
Я пробовал лайкать array_combine и foreach, если кто-то знает логику, то прокомментируйте. Заранее спасибо.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы можете связать обработчик onclick с этим флажком и сделать так, чтобы функция onclick предоставляла вам значение qty[] только тогда, когда оно отмечено. Для этого отправьте ссылку на элемент и индекс в функцию onclick и используйте тот же индекс для именования элементов ch и qty:
function cbClick(e, index) {
if (e.checked) {
var qty = document.querySelector('input[name = "qty['+index+']"]').value;
console.info('cb value '+ e.value);
console.info('qty value' + qty);
}
}<!-- You will loop the PHP code to give the name to each elements with 0, 1, 2..-->
<input type = "checkbox" name = "ch[0]" onclick = "cbClick(this, 0)" value = "cb9" />
<input type = "number" name = "qty[0]" /><br>
<input type = "checkbox" name = "ch[1]" onclick = "cbClick(this, 1)" value = "cb10" />
<input type = "number" name = "qty[1]" /><br>Ввод числа (если он не отключен или не имеет имени) всегда будет успешным и появится в данных.
Флажок будет успешным только в том случае, если он отмечен.
Это означает, что использование простого синтаксиса массива PHP приведет к тому, что ваши входные данные будут рассинхронизированы друг с другом. Первый введенный номер будет иметь тот же индекс, что и первый флажок проверил, и так далее.
Чтобы справиться с этим: Дайте входным данным явный индексы.
Например:
<input type = "checkbox" name = "ch[]" value = "<?php echo $f['id'];?>"/>
<input type = "number" name = "qty[<?php echo $f['id'];?>]"/><br>
Затем в PHP вы можете:
foreach ($_POST[ch] as $ch_value) {
do_something_with($_POST['qty'][$ch_value]);
}