Есть форма, позволяющая указать состав изделия и материалы для каждой детали, условно выглядит так:
<form name="zakaz">
Жилет меховой: <input name="isdel" type="text" size="4" value="3"> шт.
<table>
<tr>
<td>
Рукав левый
<div style="float: right;width: 20px;">
<input name="detail" type="checkbox" checked value="1">
</div>
</td>
<td>
<select name="material">
<option value="1">Кожа</option>
<option value="2">Мех</option>
<option value="3">Ткань</option>
</select>
</td>
</tr>
<tr>
<td>
Рукав правый
<div style="float: right;width: 20px;">
<input name="detail" type="checkbox" checked value="2">
</div>
</td>
<td>
<select name="material">
<option value="1">Кожа</option>
<option value="2">Мех</option>
<option value="3">Ткань</option>
</select>
</td>
</tr>
<tr>
<td>
<b>Застежка молния</b>
<div style="float: right;width: 20px;">
<input name="detailmod" type="radio" checked value="4">
</div>
<div style="float: right;width: 20px;">
<input name="detail" type="checkbox" checked value="3">
</div>
<table>
<tr>
<td>
Пуговицы
<div style="float: right;width: 20px;">
<input name="detailmod" type="radio" checked value="5">
</div>
</td>
</tr>
<tr>
<td>
Кнопки
<div style="float: right;width: 20px;">
<input name="detailmod" type="radio" checked value="6">
</div>
</td>
</tr>
</table>
</td>
<td>
<select name="material">
<option value="1">Пластик</option>
<option value="2">Металл</option>
<option value="3">Дерево</option>
</select>
</td>
</tr>
</table>
<br>
<center><input type="submit" value="Далее"></center>
</form>
Форма позволяет пользователю указать какие части изделия он хочет заказать, в каком варианте (радиокнопки про застежку молнию/пуговицы/кнопки) и из какого материала каждая деталь, а какие он заказывать не хочет. По умолчанию выставлена полная комплектация (чекбоксы включены).
Когда все чекбоксы включены, - форма передает обработчику парные данные: Деталь/Материал (количество переданных обработчику detail равно количеству material), соответственно обработчиком можно посчитать пары и запихать их в массив не особо раздумывая.
Если, допустим, один из чекбоксов отключить, то обработчику передастся на 1 detail меньше чем количество material. Обработчик получит 2 шт. detail и 3 шт. material, соответственно загнать эти данные в массив, простым циклом не получится, без смещения материалов относительно деталей.
В связи с этим вопрос. Раз при отключенном чекбоксе обработчику не передается соответствующий detail, как сделать, чтобы и соответствующий этому detail material тоже не передавался, и кол-во переданных detail всегда равнялось кол-ву переданных material?