製品データベースの製品をテーブルに表示しており、目的の製品を選択するためのチェックボックスがあります。
各製品には 3 つのバリエーションまたは価格オプションがあり、価格バリエーションごとに個別の項目としてデータベースに入力されます。
Code category Description Points Choose your Points
1001-B Logo artwork supplied Basic 4.00 points
1001-S Logo artwork supplied Standard 6.00 points
1001-P Logo artwork supplied Premium 12.00 points
1002-B Logo re-draw to vector Basic 6.00 points
1002-S Logo re-draw to vector Standard 8.00 points
1002-P Logo re-draw to vector Premium 14.00 points
各製品には、ベーシック、スタンダード、プレミアムの 3 つの価格バリエーションがあります。各「製品」には同じ製品コードがあります。上記の製品のように、1001-B がベーシック、1001-S がスタンダード、1001-P がプレミアムです。
したがって、顧客は、各項目の横にあるチェックボックスを選択して、希望する価格オプションを選択します。
製品の組み合わせごとに 1 つの価格ポイント/製品のみを選択できるようにしたいと考えています (つまり、3 つの価格ポイントのうちの 1 つだけ)。
つまり、基本的にチェックボックスをラジオボタンのように機能させることです。チェックボックス配列内のすべてのアイテムに同じ名前を使用しているため、ラジオボタンを使用できません: name="id[]"
echo '<input type="checkbox" name="id[]" value="' . $id . '" /></td>';
どうすればこれを達成できますか?
私は次のことができることを知っています:
<input type="checkbox" class="radio" value="1" name="fooby[1][]" />
<input type="checkbox" class="radio" value="1" name="fooby[1][]" />
<input type="checkbox" class="radio" value="1" name="fooby[1][]" />
<p> </p>
<input type="checkbox" class="radio" value="1" name="fooby[2][]" />
<input type="checkbox" class="radio" value="1" name="fooby[2][]" />
<input type="checkbox" class="radio" value="1" name="fooby[2][]" />
$("input:checkbox").click(function() {
if ($(this).attr("checked") === true) {
var group = "input:checkbox[name='" + $(this).attr("name") + "']";
$(group).attr("checked", false);
$(this).attr("checked", true);
} else {
$(this).attr("checked", false);
}
});
しかし、これは name="fooby[1][] name="fooby[2][] などの変更に依存しています。私の場合はそれができません。
何か案は?
ページが送信された後、これのカートの側面が解決されたため、チェックボックスの形式を根本的に変更したくありません。