JavaScript — Показать / скрыть выпадающее меню, если флажок установлен (несколько) — одинаковые имена классов Переполнение стека

У меня проблема с отображением / скрытием выпадающих меню, если установлен флажок.

Если флажок установлен, я хочу иметь возможность выбрать количество из выпадающего меню (например, сайт электронной коммерции). Поскольку я получаю результаты, флажки и выпадающие списки имеют одинаковое имя и имя класса — это та часть, в которой я запутался, поскольку хочу использовать один и тот же jQuery / javascript, чтобы показать / скрыть раскрывающееся меню. На данный момент все раскрывающиеся списки не скрыты, что приводит к ошибке при использовании $ _POST, поскольку все раскрывающиеся списки будут отправлены в виде массива, но не соответствуют количеству индексов в качестве флажков — поэтому я хочу disable или же display:none в выпадающих списках, которые не отмечены ($ _POST работает, только если я нажимаю на все флажки, так как он будет соответствовать количеству выпадающих)

Вот код:

<?php
include('db_connect.php');

$sql = "SELECT * FROM Entertainment";
$result = mysqli_query($conn, $sql);

if(!$result)
die(mysqli_error());

//Fetch array from Entertainment table in DB
while ($row = mysqli_fetch_array($result)) {
$seats = $row['seats'];
//needed to disable user from choosing more tickets than it exists
if ($seats <= 0) {
echo '<input disabled type="checkbox" name="nojen[]" value="' . $row['entId'] . '">' . $row['entName'] . ' - '  . $row['date'] . ' - '  . $row['time'] . ' - '  . $row['seats'] . ' platser kvar <br>';
}
else {
echo '<input type="checkbox" class="nojen" name="nojen[]" value="' . $row['entId'] . '">' . $row['entName'] . ' - '  . $row['date'] . ' - '  . $row['time'] . ' - '  . $row['seats'] . ' platser kvar <br>';
}
echo '<select class="antal" name="antal[]">';
//if there's not enough seats, disable
for ($x = 1; $x <= 6; $x++) {
if ($x > $seats) {
print "<option disabled value = \"$x\">$x</option>";
}
else {
print "<option value  = \"$x\">$x</option>";
}
}
echo '</select>';
}
?>

$ _POST:

<?php
include 'db_connect.php';
if ($_SERVER['REQUEST_METHOD'] == 'POST') {

print_r($_POST);

$firstname = $_POST['fnamn'];
$lastname = $_POST['enamn'];
$email = $_POST['email'];
$phonenumber = $_POST['tel'];
$tickets = $_POST['antal'];
$entid = $_POST['nojen'];

mysqli_query($conn, "INSERT INTO Customer (firstName, lastName, email, phoneNumber) VALUES('$firstname', '$lastname', '$email', '$phonenumber')");

$customerid = mysqli_insert_id($conn);

if(!empty($entid)) {
foreach(array_combine($entid, $tickets) as $entarray => $ticketsarray) {
mysqli_query($conn, "INSERT INTO Reservation (entId, customerId, tickets) VALUES('$entarray', '$customerid', '$ticketsarray')");
mysqli_query($conn, "UPDATE Entertainment SET seats = seats - '$ticketsarray' WHERE entId='$entarray'");
}
}
else {
echo "Error"  . $conn->error;;
}
echo "Success";
}
else {
echo "Error"  . $conn->error;;
}
mysqli_close($conn);
?>

JQuery:

$(document).ready(function(){
$('[name="nojen[]"]').change(function(){
if(this.checked)
$('[name="antal[]"]').fadeIn('slow');
else
$('[name="antal[]"]').fadeOut('slow');

});

});

Я знаю, что флажок должен знать, какой выпадающий список он должен показывать или нет, но я не могу понять, почему в данный момент … Заранее спасибо!

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector