對於我的書店,我開始建立一個cashdesk腳本。這是一個非常簡單的形式,用ajax動態搜索。這是本地PC的腳本,因此腳本不會在網上發佈。如何在mysql查詢後獲取json數據在阿賈克斯
當我掃描EAN代碼時,我的表單填寫了標題,作者,編輯和價格。這本書已經準備好加入籃子了。
現在我試圖在這個腳本中介紹Json:但我不明白如何在腳本中獲取mysql查詢的值,並將它們放在我的cashdesk窗體的正確字段中。
我測試了Mysql查詢和Json。
查詢
<?php
header('Content-Type: text/html; charset=ISO-8859-1');
include('connexion.php');
$connect_db = connect();
$i = 0;
$tmp = array();
$fetch = mysql_query("SELECT jos_vm_product.product_id,product_name,product_author,product_editor,jos_vm_product_price.product_price FROM jos_vm_product INNER JOIN jos_vm_product_price ON (jos_vm_product.product_id = jos_vm_product_price.product_id) WHERE product_EAN = '$_POST[EAN]'");
while ($row = mysql_fetch_array($fetch, MYSQL_ASSOC)) {
$tmp[$i] = $row;
}
echo json_encode($tmp);
close();
?>
一個JSON爲例:
[{"product_id":"7097","product_name":"Paix pour tous - Livre audio","product_author":"Wayne W. Dyer","product_editor":"Ada","product_price":"20.28"}]
了AJAX腳本
var xhr = null;
function getXhr()
{
if(window.XMLHttpRequest) xhr = new XMLHttpRequest();
else if(window.ActiveXObject)
{
try
{
xhr = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
}
else
{
alert("Not Working");
xhr = false;
}
}
function ajaxEAN()
{
getXhr();
xhr.onreadystatechange = function()
{
if(xhr.readyState == 4 && xhr.status == 200)
{
var data = '{"product_id": "product_id", "product_name":"product_name", "product_author":"product_author", "product_editor":"product_editor", "product_price":"product_price"}';
oData = JSON.parse(data);
for(var i in oData){
document.getElementById(i).value = oData[i];
}
}
}
xhr.open("POST",'ajaxrecupaddr.php',true);
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
EAN = document.getElementById("EAN").value;
xhr.send("EAN="+EAN);
}
感謝您的幫助!
哇!這是一個不安全的PHP腳本。 – Amberlamps 2013-03-11 15:02:17
你是說你根本無法從響應中獲取JSON並在你的JS中使用它? – 2013-03-11 15:04:19
請重新構建你的問題..添加你做了什麼..你得到了什麼...什麼是預期的。 – 2013-03-11 15:06:26