目的:
AJAXとPHPを使用して、テーブルの各行のドロップダウンボックスに新しい一意のオプションのセットを表示します。
詳細:
PHPで記述されたテーブルがあります。ここで、forループでテーブルの行を作成します。
コード:
<table>
foreach ($mylist as $i)
{
<tr>
<td>
echo '<select name="product[]" onchange="showItems(this.value,'.$i.')" >';
echo "<option value='APPLE'>APPLE</option>";
echo "<option value='ORANGE'>ORANGE</option>";
echo "<option value='PLUM'>PLUM</option>";
echo '</select>';
</td>
<td>
echo '<select name="sales[]" id="txtHint">';
echo '</select>';
</td>
</tr>
}
</table>
これにより、次のようなテーブルが作成されます。
No. Product sales mode
--- ------- -------
1 (Drop-down list here) (drop-down list here)
2 (Drop-down list here) (drop-down list here)
ありN
ません。テーブル行の。
ユーザーがドロップダウンリストから「APPLE」などの特定のオプションを選択すると、そのProduct
列row 1
の対応するsales mode
列が、最初の列で選択された製品row 1
に関連するAJAXを使用したオプションで更新されます。APPLE
つまり、Product
列のオプションに基づいて、列のオプションsales mode
が変更されます(その逆はありません)。
私が直面している問題は、新しい別の製品を選択するたびに、テーブルの2行目で、2行目の選択sales mode
に基づいて1行目の列も変更されることです。Product
最初のステップでは:
No. Product sales mode
--- ---- ----------
1 Apple EXPRESS
2 (Select) (Select)
次にこれを行うとき[列Orange
のオプションを選択]:product
No. Product sales mode
--- ---- ----------
1 Apple EXPRESS//This is the default option for Apple
2 Orange (select)
これになります:
No. Product sales mode
--- ---- ----------
1 Apple REGULAR//This is the default option for Orange
2 Orange (select)
AJAXコード:
function showItems(str,val)
{
if (str=="")
{
document.getElementById("txtHint").innerHTML="";
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","getuser.php?q="+str+"&val="+val,true);
xmlhttp.send();
}
どうすればこれを達成できますか?[AJAXはかなり新しい]
あなたの助け、提案に感謝します。さらに詳しい情報が必要な場合はお知らせください。