javascript — Установите / снимите флажок, изменив значения в параметрах в разных строках

У меня есть таблица как следовать

<tbody>
<?php
foreach($redeemSales as $sale)
{
?>
<tr>
<td><form><input type="checkbox" name="userSelection" ></form></td>
<td><?php echo $sale["ring"];?></td>
<td><?php echo formatFullDate($sale["soldDate"]) ?></td>
<td><?php echo $sale["saleType"]; ?></td>
<td>
<div class="col-lg-8">
<select name="type" class="form-control redeemOptions">
<option value="None">None</option>
<option value="CD">CherieDori Credit (CD)</option>
<option value="Amex">American Express Card (Amex)</option>
</select>
</div>
</td>
</tr>
<?php }?>
</tbody>

То, что я хочу, когда я выбираю, скажем, по умолчанию значение «Нет».

Когда я выбираю вторую опцию «CD», флажок автоматически выбирается.

Если я переключусь на любую другую опцию, то она должна автоматически отключиться.

Есть несколько строк, и я хочу, чтобы только соответствующий флажок был выбран.

Вот что я пробовал в JavaScript

$(document).ready(function(e)
{
$('.redeemOptions').change(function()
{
var menuChanged = $(this);

parentForm = menuChanged.closest('form');
correspondingCheckbox = parentForm.find('input[name=userSelection]');

if(menuChanged.val() == 'CD')
{
correspondingCheckbox[0].checked = true;
}
else
{
correspondingCheckbox[0].checked = false;
}
});
});

Теперь, во-первых, correspondingCheckbox.checked = true; не работает. Как я могу получить это правильно.

Во-вторых, если я нажимаю кнопку, я хочу получить идентификаторы всех выбранных строк. Например, 1-й ряд, 3-й ряд и т. Д.

У меня есть кнопка под столом

<a class="btn btn-primary" href="actions.php?j=5&saleIds=x,x,x,x">Redeem Sales &rarr;</a>

Я хочу отправить все идентификаторы продаж выбранных мной строк. foreach($redeemSales as $sale) Является ли продажа и ее идентификатор продажи можно получить по $sale['id']. Возможно, мне нужно добавить их в массив, когда я изменю флажок на true, а затем отправить его при нажатии над кнопкой herf. Как я буду делать это в javascript, где выбор отмечен или, может быть, когда нажата кнопка, он проверяет все отмеченные флажки и создает список и передает файл actions.php?

1

Решение

Проблема, возможно, заключается в обходе флажка. Основываясь на разметке выше, вы можете сделать что-то вроде этого:

$(document).ready(function(){
$('.redeemOptions').on('change', function(){
var value = $(this).val();
var status = (value == 'CD') ? true : false;
$(this).closest('tr').children()[0].childNodes[0].checked = status;
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form>
<table>
<tbody>
<tr>
<td><input type="checkbox" name="userSelection[]" ></td>
<td>ring1</td>
<td>2014-09-28</td>
<td>type1</td>
<td>
<div class="col-lg-8">
<select name="type" class="form-control redeemOptions">
<option value="None">None</option>
<option value="CD">CherieDori Credit (CD)</option>
<option value="Amex">American Express Card (Amex)</option>
</select>
</div>
</td>
</tr>
<tr>
<td><input type="checkbox" name="userSelection[]" ></td>
<td>ring2</td>
<td>2014-09-28</td>
<td>type2</td>
<td>
<div class="col-lg-8">
<select name="type" class="form-control redeemOptions">
<option value="None">None</option>
<option value="CD">CherieDori Credit (CD)</option>
<option value="Amex">American Express Card (Amex)</option>
</select>
</div>
</td>
</tr>
</tbody>
</table>
</form>
1

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

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