使用AJAX

时间:2017-11-22 11:54:53

标签: javascript php html ajax

我有一个名为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的主体中,但没有...

请帮忙吗?

0 个答案:

没有答案
相关问题