【问题标题】:Pass request values using XmlHttpRequest使用 XmlHttpRequest 传递请求值
【发布时间】:2013-05-05 13:45:41
【问题描述】:

我有用户名和其他两个从表单提交的元素,我可以通过 ajax .js 文件中的 id 获取它们。现在我希望将这三个元素传递给一个 php 文件。我可以创建三个变量,每个变量都分配给新的 XmlHttpReqest,例如。 var XmlHttpusername=new XmlHttpRequest().

现在我如何将这三个请求值传递给单个 php 文件,在该文件中我必须在数据库中比较这三个内容并生成适当的消息。 我的ajax代码如下:

 function GetXmlHttpObject()
 {
        if (window.XMLHttpRequest)
          {
  return new XMLHttpRequest();
          }
        else if (window.ActiveXObject)
          {
// code for IE6, IE5
  return new ActiveXObject("Microsoft.XMLHTTP");
          }
        return null;
 }

// User name function 
var XMLHttpUsername=false;
var XMLHttpSec_q=false;
var XMLHttpSec_a=false;
function UserAvail(resp)
{
   XMLHttpUsername=GetXmlHttpObject();   
   if (XMLHttpUsername==null)
   {
      alert ("Your browser does not support AJAX!");
      return;
   }
   XMLHttpUsername.open("GET","checkUser.php?user="+resp,true);
   XMLHttpUsername.onreadystatechange = function(){
      if (XMLHttpUsername.readyState==4 && XMLHttpUsername.status == 200){
      document.getElementById('userChange').innerHTML=XMLHttpUsername.responseText; 
      }  
   }
   XMLHttpUsername.send(null); 
}

function InputCheck(resp)
{
   XMLHttpUsername=GetXmlHttpObject();
   XMLHttpSec_q=GetXmlHttpObject();
   XMLHttpSec_a=GetXmlHttpObject(); 

   if (XMLHttpInputs==null||XMLHttpSec_a==null||XMLHttpSec_q==null){
     alert ("Your browser does not support AJAX!");
      return;
     }
   XMLHttpSec_a.open("GET","checkUser.php?user="+user,true);
   XMLHttpSec_a.onreadystatechange = function(){
   if (XMLHttpSec_a.readyState==4 && XMLHttpUsername.status == 200){
      document.getElementById('submitMain').innerHTML=XMLHttpSec_a.responseText; 
   }  
  }
  XMLHttpSec_a.send(null); 
}

【问题讨论】:

  • 你应该修正你的标题,这不是问题。也不要使用 GET 发送敏感数据..
  • 您是否考虑过使用框架来帮助解决此问题?

标签: php javascript ajax xmlhttprequest


【解决方案1】:

您可以在单个 AJAX 请求中将三个值中的每一个作为参数传递:

XMLHttpSec_a.open("GET","checkUser.php?parameter1=" + parameter1 + "&parameter2=" + parameter2 + "&parameter3=" + parameter3);

没有必要仅仅为了发送多条数据而创建单独的请求。

【讨论】:

  • 如果参数包含特殊字符,您应该使用encodeURIComponent() 确保正确编码。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-09-30
  • 2022-01-22
  • 1970-01-01
  • 2020-05-23
  • 1970-01-01
  • 2012-02-06
  • 2012-11-14
相关资源
最近更新 更多