ส่ง json ให้ php โดยใช้ jquery
function addProduct()
{
var dataCell=new Array(6);
var tb=document.getElementById("tbProductDetail");
var numRow=tb.rows.length-2; //get num row
document.getElementById("no").value=numRow;
dataCell[0]=document.getElementById("no");
dataCell[1]=document.getElementById("model");
dataCell[2]=document.getElementById("description");
dataCell[3]=document.getElementById("qty");
dataCell[4]=document.getElementById("unit");
dataCell[5]=document.getElementById("x"); //wait function substring(size)
dataCell[6]=document.getElementById("remark");
data[dataRow]=new Array(dataCell[0].value,dataCell[1].value,dataCell[2].value,dataCell[3].value,dataCell[4].value,dataCell[5].value,dataCell[6].value);
}
function sentData()
{
if(req)
{
var gen=Math.random();
var call="";
call+="receipt.php?gen="+gen;
call+="&dat="+dat;
//document.writeln(call);
req.open("GET",call);
req.onreadystatechange=response;
req.send(null);
}else
alert("aaa");
}
function submitData()
{
dat = JSON.stringify(data);
sentData();
}
///////////////php
<?
$output =json_decode($_GET["dat"]);
//echo $output[0][1]; //456
echo $data[1][1];
?>
จากโค๊ด ผมส่งข้อมูล JSON ไปให้ php ประมวลผลโดยลอง debug ข้อมูลที่ส่งไปได้ประมาณนี้ครับ
dat=[[1,"aaa","aaa","aaa","aaa","aa","aaaaa"],[2,"bbb","bbb","bbb","bbb","bb","bbbbb"],
[3,"ccc","ccc","ccc","ccc","cc","ccccc"]]
แล้วจะลองให้ php แสดงผลข้อมูลตามโค๊ดอ่ะครับ แต่มันกลับแสดงผลเป็นแค่ blank ( น่าจะเป็นค่า null )
จะต้องทำยังไงถึงจะ decode ข้อมูลที่ส่งไปมาใช้ได้อ่ะครับ
ผมงงมาหลายวันแล้ว T-T มือใหม่ด้วยครับ
ขออีก 1 คำถามครับ
ผมสมัครสมาชิกไปแล้วดันใส่ email ผิด ผมจะแก้ไขได้อย่างไรอ่ะครับ
ขอบคุณครับ
อย่าลืมload jquery มาใช้ด้วยครับ(บริการเต็มที่)
http://www.dwthai.com/img/jquery.js
<!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" />
<link href="GolbalCSS.css" rel="stylesheet" type="text/css"/>
<link type="text/css" rel="stylesheet" href="dhtmlgoodies_calendar/dhtmlgoodies_calendar.css?random=20051112" media="screen" />
<script type="text/javascript" src="dhtmlgoodies_calendar/dhtmlgoodies_calendar.js?random=20060118">
</script>
<script type="text/javascript" src="json2.js">
</script>
<script>
var req=createRequest();
function createRequest()
{
var obj=false;
if(window.XMLHttpRequest) //not ie
obj=new XMLHttpRequest();
else if(window.ActiveXObject) //ie
obj=new ActiveXObject("Microsoft.XMLHTTP");
return obj;
}
function sentData()
{
if(req)
{
var gen=Math.random();
var call="";
call+="receipt.php?gen="+gen;
call+="&dat="+dat;
alert(call);
req.open("GET",call);
req.onreadystatechange=response;
req.send(null);
}else
alert("aaa");
}
function response()
{
if(req.readyState==4)
{
var x=document.getElementById("resp");
if(req.responseText==1)
x.innerHTML="database problem!?";
else
{
x.innerHTML=req.responseText;
}
}
}
function setDefault()
{
document.clear();
}
var dataRow=0;
var data= new Array();
function addProduct()
{
var dataCell=new Array(6);
var tb=document.getElementById("tbProductDetail");
var numRow=tb.rows.length-2; //get num row
document.getElementById("no").value=numRow;
dataCell[0]=document.getElementById("no");
dataCell[1]=document.getElementById("model");
dataCell[2]=document.getElementById("description");
dataCell[3]=document.getElementById("qty");
dataCell[4]=document.getElementById("unit");
dataCell[5]=document.getElementById("x"); //wait function substring(size)
dataCell[6]=document.getElementById("remark");
data[dataRow]=new Array(dataCell[0].value,dataCell[1].value,dataCell[2].value,dataCell[3].value,dataCell[4].value,dataCell[5].value,dataCell[6].value);
var row = tb.insertRow(numRow); //create row
for(var i=0;i<7;i++)
{
var cell = row.insertCell(i); //create cell 0
var textNode = document.createTextNode(dataCell[i].value); //create text in cell 0
cell.appendChild(textNode); //insert row
//alert(data[i]+" "+dataRow);
}
//alert(data[dataRow][1]);
dataRow++;
//setDefault();
}
function checkData()
{
}
var dat;
function submitData()
{
//data=data.toJSONString();
//var dd=new Array();
dat = JSON.stringify(data);
/*for(var i=0;i<20;i++)
dd[i]=new Array(i+2,i-2);
dat = JSON.stringify(dd);*/
sentData();
//alert(val);
}
</script>
<title>Receipt</title>
</head>
<body>
<table width="800px">
<tr>
<td height="70px" valign="top">
<span style="font-size:30px;">Receipt</span><div id="resp"></div>
</td>
</tr>
<tr>
<td>
<table width="80%">
<tr>
<td width="20%">
Date<br>
<input type="text" readonly style="width:100px" id="dateReceipt"/>
<input type="button" style="height:20px; vertical-align:top" value="v" onclick="displayCalendar(dateReceipt,'dd/mm/yyyy',this)"/>
</td>
<td width="15%">
Receive No.<br>
<input style="width:100px" type="text" id="receive" />
</td>
<td width="25%">
Description<br>
<input style="width:180px" type="text" id="receive" />
</td>
<td width="25%">
Remark<br>
<input style="width:150px" type="text" id="receive" />
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td>
<span style="font-size:20px" >Product Detail</span>
<table id='tbProductDetail' cellspacing="3"> <!-- Product Detail -->
<tr>
<th width="5%">
No.
</th>
<th width="20%">
Model
</th>
<th width="35%">
Description
</th>
<th width="5%">
Qty
</th>
<th width="10%">
Unit Name
</th>
<th width="10%">
size(cm)<br />
X Y Z
</th>
<th width="20%">
Remark
</th>
</tr>
<tr>
<td><div id='no'></div>
</td>
<td>
<input type="text" style="width:98%" id="model" />
</td>
<td>
<input type="text" style="width:98%" id="description" />
</td>
<td>
<input type="text" style="width:95%" id="qty" />
</td>
<td>
<input type="text" style="width:95%" id="unit" />
</td>
<td align="center">
<input type="text" style="width:20%" id="x" />
<input type="text" style="width:20%" id="y" />
<input type="text" style="width:20%" id="z" />
</td>
<td>
<input type="text" style="width:95%" id="remark" />
</td>
</tr>
<tr>
<td></td>
<td><input style="width:40px" type="button" onclick="addProduct();" value="Add" /></td>
</tr>
</table>
</td>
</tr>
<tr>
<td>
<hr width="80%" align="left" />
<table align="right">
<tr>
<td>
<input type="button" onclick="submitData();" id="submit" value="submit" /> </td>
<td><input name="reset" type="reset" id="reset" value="cancle" /></td>
</tr>
</table>
</td>
</tr>
</td>
</tr>
</table>
</body>
</html>
$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
มันถึงจะถูกถอดโดย json_decode() ได้เข้าใจว่ารูปแบบของข้อมูลมันผิด ก็เลยถอดไม่ได้ครับ
คลิกที่ชื่อตัวเองใต้รูปภาพในกรอบ login ครับ
ขอรบกวนอีกครั้งครับ
จาก function submitData() ในจาวาสคริป
ผมลองเอาคอมเม๊นบรรทัดที่ 113-115
ออกแล้วลองส่ง Data ส่วนนี้ไปเพื่อแสดงผลตาม code php ดังกล่าว
มันกลับแสดงผลได้อะครับ ผมเลยเดาว่ามันจะผิดดตอนแปลงค่าตัวแปลใน
function addProduct() หรือเปล่าเพราะผมก็มือใหม่ซะด้วยทั้ง php และ javascript
หรือถ้า อ. มีฟังชั่นอะไรที่พอจะแนะนำในการ encode ด้วยจาวา และ decode ด้วย php ได้
ช่วยแนะนำด้วยน๊ะครับ
ส่วนเรื่องเปลี่ยนชื่อเมล พอผมคลิ๊กจะเปลี่ยนปรากฏว่า
ช่องที่ใส่ email ถูก Disable ไว้ เลยเปลี่ยนไม่ได้อ่ะครับ
ไม่แน่ใจว่าเป็นเพราะ ไม่ได้ ยืนยันสิทธิ์ ในเมลล์หรือเปล่า
แต่ถ้าไม่ได้เปลี่ยนจะเป็นอะไรหรือเปล่าครับ
ขอบคุณครับ
ขอบคุณมากครับ
ถ้าไงเด๋วลองงมๆ ดูอีกซักหน่อย
ขอบคุณมากครับสำหรับความรู้