2013-10-04 92 views
0
**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]']; 
    } 
} 
?> 

我想顯示我從Javascript傳遞給PHP文件的記錄。 我想通過例如包含5個值的每個變量,從Javascript到PHP文件。相同的5個值,我想在PHP文件中顯示並將它們存儲在數據庫中。如何從JavaScript獲取數組值並在php中顯示相同的值

+1

縮進你的代碼,會更容易爲人們看看未來 - http://beta.phpformatter.com/ – Edward

+0

編碼您在JS​​ON JavaScript數組。然後在你的PHP中使用'json_decode()'。簡單。 – Jimbo

+0

接受我的修改和虐待:) – Edward

回答

0

你主要做了正確的事情了,但你不應該單獨發送的每個數組項,發送擠滿了數組:

// 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); 

可是在這種方法的陣列[1,2,3]被合併到"1;2;3"小心,你應該請確保您的分隔符;不在陣列中!

+0

Jquery的serialize()將爲你做所有這些。 – Edward

+0

確實如此,但知道基礎知識可能並不壞! – mjb4

+0

陣列陣列陣列 –

0

你幾乎在那裏,做我的評論,然後改變你的代碼。它會轉儲您的ajax請求中發送的值。

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); 

} 
+0

它不工作 –

相關問題