.change ステートメントに渡されるフォーム要素のインデックスを取得する必要があります。
サンプル HTML フォーム コード
<tr><td>Question1</td><td><select class=list1 id=l[1] name=l[1]><option value=1>1<option value=2> 2 <option value=3> 3 </select></td><td><select class=hideme name=x[1] id=x[1]></select></td></tr>
<tr><td>Question2</td><td><select class=list1 id=l[1] name=l[2]><option value=1>1<option value=2> 2 <option value=3> 3 </select></td><td><select class=hideme name=x[2] id=x[2]></select></td></tr>
<tr><td>Question3</td><td><select class=list1 id=l[3] name=l[3]><option value=1>1<option value=2> 2 <option value=3> 3 </select></td><td><select class=hideme name=x[3] id=x[3]></select></td></tr>
ここで、ユーザーは最初のプルダウンから 1、2、または 3 を選択します。その選択に基づいて、2 番目のプルダウンにコンテンツがロードされます。
例 javascipt jquery 関数
$('.list1').change (function ()
{
// here is where I need to pick up the index ie: the [1] [2] or [3] as var id
var selected = $("#l[id] option:selected");
var pdata = 'subjectareaid='+selected.val();
$.ajax({
type : "POST",
cache : false,
url : "subcat.php",
data : pdata,
success: function(data) {
$('#x[id]').html(data);
$('#x[id]').removeClass('hideme');
}
});
});
これにより、最初のプルダウンからの選択に基づいて、ajax 呼び出しによって返されたオプションを 2 番目のプルダウンに入力できます。
テーブルには 54 のプルダウンがあり、すべてに対してこのアクションを実行する必要があります (これは、フォーム送信時に mysql テーブルに入力するためです) プルダウンは (l[id]) プライマリ カテゴリ (x[id]) サブカテゴリです。サブキャットの選択は、メインの猫が選択されて select ステートメントが入力されるまで非表示になります。