Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/273.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
PHP-AJAX多表单Post_Php_Jquery_Ajax_Arguments - Fatal编程技术网

PHP-AJAX多表单Post

PHP-AJAX多表单Post,php,jquery,ajax,arguments,Php,Jquery,Ajax,Arguments,在我的PHP应用程序的一个模块中,有多个表单,由服务器端使用唯一的id和名称生成,如“formToProcess1,formToProcess2,…,fromToProcessN”。但是,有两个ajax函数处理每个表单的请求,它们都以字符串形式获取表单名称作为参数,如下所示: function ajaxReject(formToProcess) { var ajaxRequest; //document.getElementById('divUploadRes

在我的PHP应用程序的一个模块中,有多个表单,由服务器端使用唯一的id和名称生成,如“formToProcess1,formToProcess2,…,fromToProcessN”。但是,有两个ajax函数处理每个表单的请求,它们都以字符串形式获取表单名称作为参数,如下所示:

 function ajaxReject(formToProcess)
    {
     var ajaxRequest;
        //document.getElementById('divUploadResultAjax').style.display = 'none';



        try
        {
          ajaxRequest = new XMLHttpRequest();
        }
        catch (e)
        {
          try
          {
             ajaxRequest = new ActiveXObject('Msxml2.XMLHTTP');
          }
          catch (e) 
          {
             try
             {
                ajaxRequest = new ActiveXObject('Microsoft.XMLHTTP');
              }
              catch (e)
              {
                alert('Something is wrong with your browser, AJAX not working!');
               return false;
             }
          }
        }

        ajaxRequest.onreadystatechange = function()
        {
          if(ajaxRequest.readyState == 4)
          {
             var ajaxDisplay = document.getElementById('divUploadResultAjax');
             ajaxDisplay.innerHTML = ajaxRequest.responseText;
             //document.getElementById('loadingAjaxIcon').style.display = 'none';
             document.getElementById('divUploadResultAjax').style.display = 'block';
          }
        }

        var updName         = document.forms['formToProcess'].getElementById('userName').value;

                      //i'll get other elements values for query string to send if i can get this one first :)




        var queryString = '?name=' + updName + '&lastname=' + updLastname + '&bio=' + updBio + '&country=' + updCountry + '&cams=' + updCams + '&fb=' + updFacebook + '&twitter=' + updTwitter + '&processRequest=' + RequestProcess;

        alert (queryString);
        return;


        ajaxRequest.open('GET', 'dashboardUpdateProfile.php' + queryString, true);
        ajaxRequest.send(null); 
                        }



#Every form in the php page is generated like following:

        echo '

                                        <div id="divUploadResultAjax">
                                            <form name="profileUpdater'. $formCounter .'">
                                                <input type="hidden" id="uluid" name="uluid" value="'.$UL_UploadID.'" />
                                                <table class="tg" style="width: 100%">
                                                    <tr>
                                                        <td style="font-weight: bold; width: 250px; color: #000000;" colspan="3">
                                                            <h3>Upload ID #'.$UL_UploadID.' </h3> (Uploaded On '.$NewCreateDate.')
                                                        </td>
    ...
    ...
    bla bla bla
    ...
    ...

    ----> this is where i call functions in each form.
    <input type="button" class="btnRegister" name="updateProfile"     onclick="ajaxReject(\'profileUpdater'. $formCounter .'\')" value="Reject" />
             <input type="button" class="btnRegister" name="updateProfile" onclick="ajaxApprove()"     value="Approve" />
函数ajaxReject(formToProcess)
{
var ajaxRequest;
//document.getElementById('divUploadResultAjax').style.display='none';
尝试
{
ajaxRequest=新的XMLHttpRequest();
}
捕获(e)
{
尝试
{
ajaxRequest=newActiveXObject('Msxml2.XMLHTTP');
}
捕获(e)
{
尝试
{
ajaxRequest=newActiveXObject('Microsoft.XMLHTTP');
}
捕获(e)
{
警报(“您的浏览器有问题,AJAX不工作!”);
返回false;
}
}
}
ajaxRequest.onreadystatechange=函数()
{
if(ajaxRequest.readyState==4)
{
var ajaxDisplay=document.getElementById('divUploadResultAjax');
ajaxDisplay.innerHTML=ajaxRequest.responseText;
//document.getElementById('loadingAjaxIcon').style.display='none';
document.getElementById('divUploadResultAjax').style.display='block';
}
}
var updName=document.forms['formToProcess'].getElementById('userName').value;
//如果我能先得到这个值,我将得到查询字符串要发送的其他元素值:)
变量queryString='?name='+updName+'&lastname='+updLastname+'&bio='+updBio+'&country='+updCountry+'&cams='+updCams+'&fb='+updFacebook+'&twitter='+updTwitter+'&processrequestprocess='+RequestProcess;
警报(查询字符串);
回来
open('GET','dashboardUpdateProfile.php'+queryString,true);
ajaxRequest.send(空);
}
#php页面中的每个表单的生成方式如下:
回声'
上载ID“#”。$UL_UploadID”。(上载于“$NewCreateDate”。)
...
...
呜呜呜呜
...
...
---->这就是我调用每种形式的函数的地方。
我真的不确定出了什么问题。当我用button click调用函数时,它会一直工作到if结束(ajaxRequest.readyState==4),之后,当我试图获取var updName=document.forms['formToProcess'].getElementById('userName').value;函数崩溃。我做错了什么


谢谢。

您不能使用类似
var updName=document.getElementById('userName').value


我在表单中找不到username元素?它是否存在于实际代码中?

是的,在我的表单中有一个名为userName(input)的元素。我可以通过简单地执行上面提到的方法得到它的值,但是当它在其他形式中多次包含相同的名称时,它只会得到第一个名称,而不会在其他形式中。这就是为什么我需要这样做:document.forms[formName].getElementById('userName').value;但是它不起作用,我被困在这里:(为什么不使用元素名,比如
var updName=document.forms[formToProcess].userName.value;
你注意到我没有在formToProcess周围使用getElementById和no'(引号)吗?好吧,它工作起来很有魅力,我有语法错误。非常感谢!