背景 PHP がデータベースから生成するフォームがあります。ディナーイベントの座席登録ページです。各[ディナー]テーブルは、レセプションへのチケットを一定数受け取ります。たとえば、10 席のテーブルには、ガラ レセプションのチケットが 7 枚、チェアマンズ レセプションのチケットが 3 枚ある場合があります。
各行には、プレフィックスを配列に格納するプレフィックス値があり、ループスルーして値を取得します。次のようになります。
<select name='prefix[]' onchange='prefixCheck(this.value)' >
<option value=''>Select</option>
<option value='Mr.'selected >Mr.</option>
<option value='Ms.' >Ms.</option>
<option value='Dr.' >Dr.</option>
<option value='Sen.' >Sen.</option>
<option value='Sec.' >Sec.</option>
<option value='Rep.' >Rep.</option>
</select>
フォームにはさまざまな数のprefix[]
フィールドがあります。また、私のページの上部には、現在テーブルにあるガラとチェアマンのレセプション チケットの数のカウンターがあります。
<td align = left>
Total Gala Reception Tickets Available:
</td>
<td align = center>
<input type='text' size='2' id='gala' name='gala' value=7 style='background-color:#C8C8C8 '>
<input type='hidden' size='2' id='gala_orig' name='gala' value=7 >
</td>
</tr>
<tr>
<td align = left>
Total Chairman's Reception Tickets Available
</td>
<td align = center>
<input type='text' id='chairman' name='chairman' size='2' value=3 style='background-color:#C8C8C8 '>
<input type='hidden' id='chairman_orig' name='chairman' size='2' value=3 >
</td>
</tr>
目的Sen.
、Sec.
、
のプレフィックス値Rep.
は特別です。つまり、ユーザーが座席ごとにこれらのいずれかを選択すると、 のカウントがgala
減少し、 の数がchairman
増加します。私はこのJavaScript関数を持っていますが、私は重要な部分のようです。ユーザーが を選択Sen.
すると、アクションが発生しますが、別の修飾プレフィックスを選択すると、アクションが再び発生します。ガラを減らし、椅子を増やします。
function prefixCheck(v){
gala_limit = document.getElementById('gala').value;
chair_limit = document.getElementById('chairman').value;
if(v == 'Sec.' || v == 'Sen.' || v == 'Rep.'){
gala_limit--;
chair_limit++;
document.getElementById('gala').value = gala_limit;
document.getElementById('chairman').value = chair_limit;
}
else{
document.getElementById('gala').value = document.getElementById('gala_orig').value;
document.getElementById('chairman').value = document.getElementById('chair_orig').value
}
}
prefix
配列のオブジェクト構造を変更したくありません。私は何が欠けていますか?