如何从JavaScript获取数组值并在php中显示相同的值 **Main.php文件** 函数showUser(str){ 如果(str==“”){ document.getElementById(“txtHint”).innerHTML=“”; 返回; } if(window.XMLHttpRequest){//IE7+、Firefox、Chrome、Opera、Safari的代码 xmlhttp=新的XMLHttpRequest(); }else{//IE6、IE5的代码 xmlhttp=新的ActiveXObject(“Microsoft.xmlhttp”); } xmlhttp.onreadystatechange=函数(){ if(xmlhttp.readyState==4&&xmlhttp.status==200){ document.getElementById(“txtHint”).innerHTML=xmlhttp.responseText; } } var internal=新数组(); var external=新数组(); var sub=新数组(); var end=document.getElementById(“tot”).value; 对于(var i=0;i

如何从JavaScript获取数组值并在php中显示相同的值 **Main.php文件** 函数showUser(str){ 如果(str==“”){ document.getElementById(“txtHint”).innerHTML=“”; 返回; } if(window.XMLHttpRequest){//IE7+、Firefox、Chrome、Opera、Safari的代码 xmlhttp=新的XMLHttpRequest(); }else{//IE6、IE5的代码 xmlhttp=新的ActiveXObject(“Microsoft.xmlhttp”); } xmlhttp.onreadystatechange=函数(){ if(xmlhttp.readyState==4&&xmlhttp.status==200){ document.getElementById(“txtHint”).innerHTML=xmlhttp.responseText; } } var internal=新数组(); var external=新数组(); var sub=新数组(); var end=document.getElementById(“tot”).value; 对于(var i=0;i,javascript,php,Javascript,Php,您基本上已经做了正确的事情,但是您不应该单独发送每个数组条目,而是将数组打包发送: **Main.php file** <html> <head> <script> function showUser(str) { if(str =="") { document.getElementById("txtHint").innerHTML="";

您基本上已经做了正确的事情,但是您不应该单独发送每个数组条目,而是将数组打包发送:

**Main.php file** 

<html>
    <head>
        <script>

        function showUser(str) {
            if(str =="") {
                document.getElementById("txtHint").innerHTML="";
                return;
            }

            if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
                xmlhttp=new XMLHttpRequest();
            } else {// code for IE6, IE5
                xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
            }
            xmlhttp.onreadystatechange=function() {
                if (xmlhttp.readyState==4 && xmlhttp.status==200) {
                    document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
                }
            }
            var internal = new Array();
            var external = new Array();
            var sub = new Array();
            var end = document.getElementById("tot").value;
            for (var i=0; i<end; i++) {
                sub[i] = document.getElementById("sub["+ i +"]").innerHTML;
                internal[i] = document.getElementById("inte["+ i + "]").value;
                external[i] =document.getElementById("exte["+ i +"]").value;
                xmlhttp.open("GET","getsub.php?
                q="+sub[i]+"&in="+internal[i]+"&ex="+external[i]+"&ed="+end,true);
                xmlhttp.send();
            }
        }
        </script>
    </head>
<body>

<?php     

echo "<td> <input type='text' name='internal' id = 'inte[$i]' onkeypress='mykey()' width='30'/> </td>";
echo "<td> <input type='text' name='external' id = 'exte[$i]' width='30'/> </td>";

?>      
<div id = "txtHint"></div>

</body>
</html>

**The php file** getsub.php

<?php

if (isset($_GET['q[]'])
    AND isset($_GET['in[]'])
    AND isset($_GET['ex[]'])
    AND  isset($_GET['ed'])) {

    $host='localhost';
    $user='test1';
    $pass='test1';
    $db='test1';
    $con = mysql_connect($host,$user,$pass);
    mysql_select_db($db);

    $i=0;
    echo $ed = $_GET['ed'];

    $q[] = array();
    $m[] = array();
    $y[] = array();

    for($i=0; $i<=$ed; $i++) {
        echo $q[$i] = $_GET['q[$i]'];
        echo $m[$i] = $_GET['in[$i]'];
        echo $y[$i] = $_GET['ex[$i]'];
    }
}
?>
//Main.php
函数showUser(str){
// ...

对于(var i=0;i您就快到了,请做我的注释,然后将代码更改为这个值。它将转储ajax请求中发送的值

// Main.php 
function showUser(str) {
    // ...

    for (var i=0; i<end; i++) {
        sub[i] = document.getElementById("sub["+ i +"]").innerHTML;
        internal[i] = document.getElementById("inte["+ i + "]").value;
        external[i] =document.getElementById("exte["+ i +"]").value;

    }

    // Implode arrays make them to strings
    sub_string = sub.join(';');
    internal_string = sub.join(';');
    external_string = external.join(';');
    // Now Prepare Requet
    xmlhttp.open("GET","getsub.php?q="+sub_string+"&in="+internal_string+"&ex="+external_string true);
    // And send just one Request for all the data!
    xmlhttp.send();
}

// getsub.php
<?php

// To get the arrays in php use explode
$sub = explode(';', $_GET['q']);
// Use print_r
print_r($sub);

缩进你的代码,将使人们在将来更容易看到-用JSON编码你的javascript数组。然后在PHP中
JSON_decode()
。Simple.accept my revision and ill help:)首先使用&&而不是和-。你不需要第56,57,58,59 71,72,73行的方括号。Jquery的serialize()它只显示数组我正在使用以下源代码它只显示最后一个值,而不是在值之前,如果(isset($\u GET['q'])和isset($\u GET['in'])和isset($\u GET['ex'])和isset($\u GET['ed']){echo$sub=$\u GET['q'];echo$internal=$\u GET['in'];echo$external=$\u GET['ex'];}数组是一个由值组成的结构。如果你想用它的结构保护某事物,你必须使用@Edward的回复。不要只通过
$sub=$\u GET['q'];
使用
$sub=explode(';,$\u GET['q'])读取值
您将获得您的数组!使用
Print\r($sub)
打印它们以获得完整列表。
if (isset($_GET['q']) && isset($_GET['in']) && isset($_GET['ex']) && isset($_GET['ed']))  {

$q = $_GET['q'];
$in = $_GET['in'];
$ex = $_GET['ex'];
$ed = $_GET['ed'];

print_r($q);
print_r($in);
print_r($ex);
print_r($ed);

}