[英]How to GET array values from JavaScript and display the same values in php
**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文件中並將它們存儲在數據庫中。
您基本上已經做了正確的事情,但是您不應該單獨發送每個數組條目,而是打包發送數組:
// 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"
因此您應確保定界符;
不在數組中!
您快要在那里了,請發表我的評論,然后將代碼更改為此。 它將轉儲您的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);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.