จะนำตัวแปร Array ที่เป็น Javascript ไปเป็น Array ของ PHP ทำอย่างไรคะ
ใช้ form input แทน array ครับ
เพราะเราต้องการจะส่งค่าไป php
ดังนั้นเราไม่จำเป็นต้องเก็บข้อมูลลงใน array ก่อน
เพราะตัว form เองนั้น ก็สามารถทำให้เสมือนเป็น array ของ input element ได้
ดังนั้นสิ่งที่เราต้องทำเวลาผู้ใช้กรอกข้อมูลเข้ามาคือ เพิ่ม input element เข้าไปใน form
ให้ไฟล์นี้ชื่อว่า test.php
Code (PHP)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>test</title>
</head>
<body>
<form action="test.php" id="barcodeForm" method="post">
</form>
<?php
if (empty($_POST)) {
?>
<script>
var form = document.getElementById("barcodeForm");
var str;
while ((str = prompt("Enter barcode : ",""))) {
var input = document.createElement("INPUT");
input.type = "hidden";
input.name = "barcodes[]"; // กำหนดชื่อแบบนี้เพื่อให้ php แปลงเป็น array
input.value = str;
form.appendChild(input);
document.write(str + " " + form.elements.length + "<br />");
}
form.submit();
</script>
<?php
} else {
?>
<pre>
<?php print_r($_POST); ?>
</pre>
<?php
}
?>
</body>
</html>
Date :
2012-03-09 04:40:45
By :
actioncookie
JSON
<a href="javascript:;" onClick="ajaxPost(['teskt1','tekst2','tekst3'],'http://localhost/test/post.php')"
Code (JavaScript)
function ajaxPost(array,url){
var string='{';
for(var i in array){
var value = array[i];
string += '"'+i+'":'+value+',';
}
string = string.slice(0, -1);
string+='}';
$.post(url,eval("(" + string+")"),function(o){
//callback
});
return false;
}
post.php
echo $_POST[0]; // tekst1
echo $_POST[1]; // tekst2
echo $_POST[2]; // tekst3
Date :
2012-03-09 04:47:20
By :
thaicloud
ลืมบอกไป ใช้ jquery ช่วยนะครับวิธีนี้
Date :
2012-03-09 04:48:04
By :
thaicloud
http://code.google.com/p/jquery-json/
แปลงตัวแปร javascript เป็น json
แล้วใน php ใช้ json_decode นำตัวแปรมาใช้ได้ครับ
Date :
2012-03-09 08:36:24
By :
num
ขอบคุณมากนะคะ จะเอาไปลองเขียนดู
Date :
2012-03-09 21:16:50
By :
ยิ้ม
Load balance : Server 04