如何使用 XMLhttp.open 方法通过 PHP 文件传递数组



这是代码

<html>
  <head>
  </head>
  <body>
    <form method="get" >
      <input type="text" id="jk" name="jk" />
      <br />
      <input type="text" id="jk2" name="jk" />
      <br />
      <input type="text" id="jk3" name="jk3" style="width:100%; height:200px;" />
      <br />
      <input type="button" id="btn" name="btn" value="submit" onClick="showvalue()" />
    </form>
  </body>
</html>

这是我的 Java 脚本

function showvalue() {
  var a=document.getElementById("jk").value;
  var b =document.getElementById("jk2").value;
  var arr = new Array(a,b);
  var xmlhttp=new XMLHttpRequest();
  xmlhttp.onreadystatechange=function()
  {     
    if (xmlhttp.readyState==4 && xmlhttp.status==200)     {       
      document.getElementById("jk3").value=xmlhttp.responseText;    
    }
  }
  xmlhttp.open("GET","testphp.php?q="+arr,true);
  xmlhttp.send(); 
}

这是我的测试PHP文件

<?php 
  $arr = array();
  $arr = $_REQUEST["q"];
  echo $arr[0];
?>

当我使用此代码时,结果不正确。我需要显示发送的数组一个元素。我该怎么做?

按如下方式修改行

Javascript:

  xmlhttp.open("GET","testphp.php?q="+arr,true)  
             to
  xmlhttp.open("GET","testphp.php?q="+ JSON.stringify(arr),true);

.PHP:

 $arr = $_REQUEST["q"]; 
       to 
 $arr = $_REQUEST["q"];
 $arr = json_decode($arr);

干杯

你不能像你尝试的那样在JS中连接数组和字符串。您可以使用循环创建查询字符串,然后将其添加到 URL:

var query = '';
for (var i = 0; i < arr.length; i++) {
  if (i > 0) {
    query += '&';
  } // if
  query += 'q[' + i + ']=' + arr[i];
} // for
var url = 'testphp.php?' + query;

最新更新