Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 没有jquery的for循环中的Ajax_Javascript_Ajax - Fatal编程技术网

Javascript 没有jquery的for循环中的Ajax

Javascript 没有jquery的for循环中的Ajax,javascript,ajax,Javascript,Ajax,我有一个for循环调用ajax方法 function viderTableauConteneur() { var caf = document.getElementById('CAF').value; var tabConteneurAjouter = caf.split("#"); for (var i = 0; i < tabConteneurAjouter.length; i++) { if(!verifierConteneurAppart

我有一个for循环调用ajax方法

function viderTableauConteneur()
{
    var caf =  document.getElementById('CAF').value;
    var tabConteneurAjouter = caf.split("#"); 
    for (var i = 0; i < tabConteneurAjouter.length; i++) {
        if(!verifierConteneurAppartienClient(tabConteneurAjouter[i]));
            removeConteneur(tabConteneurAjouter[i]);
    };

}

function verifierConteneurAppartienClient(serialNumber)
{
    var e = document.getElementById("id_client");
    var idClient = e.options[e.selectedIndex].value;
    var xhr = getXhr();
    var res = 12;
    xhr.onreadystatechange = function()
    {

        if(xhr.readyState == 4 && xhr.status == 200)
        {
            if(xhr.responseText == "0")
                return false;
            else if(xhr.responseText == "1")
                return true;
        }

    }
    xhr.open("GET","index.php?option=com_tkcontrack&controller=facture&task=verifierConteneurAppartienClient&refConteneur="+serialNumber+"&id_client="+idClient,true);
    xhr.send();


}
函数viderTableauConteneur() { var caf=document.getElementById('caf').value; var tabConteneurAjouter=caf.split(“#”); 对于(变量i=0;i 如果我警告
xhr.responseText
我得到了“1”,但是当我在
viderTableauConteneur
方法中警告结果时,我总是得到“
未定义的


请提供任何帮助

您可以通过以下方式修改代码:

function viderTableauConteneur()
{
    var caf =  document.getElementById('CAF').value;
    var tabConteneurAjouter = caf.split("#"); 
    for (var i = 0; i < tabConteneurAjouter.length; i++) {
        verifierConteneurAppartienClient(tabConteneurAjouter[i], 
            function() 
            { 
                alert('true');
            },
            function()
            {
                alert('false');
                removeConteneur(tabConteneurAjouter[i])
            }
         );
     }
}

/* callbcakIfTrue and callbackIfFalse have to be 2 functions 
   that will be called respectiveley if the return of the
   ajax call is true or false. 
*/
function verifierConteneurAppartienClient(serialNumber, callbackIfTrue, callbackIfFalse)
{
    var e = document.getElementById("id_client");
    var idClient = e.options[e.selectedIndex].value;
    var xhr = getXhr();
    var res = 12;
    xhr.onreadystatechange = function()
    {

        if(xhr.readyState == 4 && xhr.status == 200)
        {

            if(xhr.responseText == "1")
                callbackIfTrue();
            else
                callbackIfFalse();

        }

    }
    xhr.open("GET","index.php?option=com_tkcontrack&controller=facture&task=verifierConteneurAppartienClient&refConteneur="+serialNumber+"&id_client="+idClient,true);
    xhr.send();


}
函数viderTableauConteneur() { var caf=document.getElementById('caf').value; var tabConteneurAjouter=caf.split(“#”); 对于(变量i=0;i进一步查看您的代码。
VerifierContentureAppartienclient
本身返回什么结果?答案是“none”-在该函数中没有
return
语句,只有在嵌套回调中。谢谢,我一直在读这个,但我没有注意其他答案