Передать входное значение, если флажок установлен, значения находятся в массиве?

<?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, если кто-то знает логику, то прокомментируйте. Заранее спасибо.

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
3
36
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вы можете связать обработчик 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]);
}

Другие вопросы по теме