我有一个名为landscape.php的php文件。在这里,我调用另一个名为colorList.php的php文件。在这个文件里面我有3个按钮来选择颜色数:4,5和6.当我点击任何按钮时,我调用一个具有ajax函数的js文件,在div = container中显示正确的选择集。
Landscape.php
<table width="980">
<tr>
<td width="1000" style="vertical-align: top">
<?php include('colorList.php'); ?>
</td>
<td width="700" style="vertical-align: top">
<div id="contenido">
</div>
</td>
</tr>
</table>
code.js
function showData(dataType)
{
var capa=document.getElementById("content");
var ajax=newAjax();
ajax.open("POST", "test.php", true);
ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
ajax.send("d="+dataType);
ajax.onreadystatechange=function()
{
if (ajax.readyState==4)
{
capa.innerHTML=ajax.responseText;
}
}
}
在test.php中,我知道如果dataType为1,那么我显示4个选择,如果2则选择5然后选择3然后选择6。所有这些都有使用mysql从db检索的颜色列表。我的想法是不要在任何选择器中重复任何颜色,为此,我禁用我用这个脚本选择的任何颜色:
function loadColors() {
for (i = 0;i < document.test.elements.length;i++) {
for (j = 0;j < document.test.elements[i].options.length;j++) {
document.test.elements[i].options[j].disabled = false;
for (k = 0;k < document.test.elements.length;k++) {
if (i != k) {
if (document.test.elements[i].options[j].text == document.test.elements[k].options[document.test.elements[k].selectedIndex].text)
document.test.elements[i].options[j].disabled = true;
}
}
}
}
}
然后,选择器的定义如下:
<select name="color1" id="color1" onchange="loadColors()">
如果我不使用ajax调用,此代码可以正常工作。也就是说,如果我在一个php页面中加载所有内容,例如,我将我在test.php中的内容复制并粘贴到landscape.php中,一切正常。但是只要我用AJAX加载该内容,它就不会。
我的问题不在于javascript和php,因为它运行正常。我的问题是,只要我将AJAX添加到等式中,它就会停止工作。所以我想这是一个调用loadColors()函数的问题。我尝试使用landscape.php中的代码,在test.php中,调用code.js(其中ajax和loadColors函数是),将脚本加载到landscape.php的主体中,但没有...
请帮忙吗?