目标:
使用 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
,然后使用 AJAX 使用与第一列中选择的产品相关的选项更新sales mode
相同的相应列。row 1
APPLE
也就是说,根据Product
列中的选项,列中的选项sales mode
会改变。(反之亦然)。
我面临的问题是,每当我选择一个新的不同产品时,在表格的第二行中,第一行的sales mode
列也会根据第二行的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 相当陌生]
感谢您的帮助,建议。如果您需要更多信息,请告诉我。