![](/img/trans.png)
[英]Pass javascript string variable to another page and get the variable in PHP with AJAX
[英]Pass a PHP string to a Javascript variable with Ajax
我這樣從數據庫中檢索數據:
while($row = mysql_fetch_array($result))
{
echo $row['uid'];
echo $row['note'];
}
我用ajax這樣打印:
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
console.log(xmlhttp.responseText)
}
}
但問題在於uid並注意其一個字符串。 例如:
"45 note goes here"
如何分別打印每一行。 像這樣:
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
console.log( <?php echo json_encode($row['uid']); ?> );
console.log( <?php echo json_encode($row['note']); ?> );
}
}
你說的很對。 在您的php腳本中,返回一個json字符串,然后在您的javascript中可以將該字符串解析為一個javascript對象。 所以:
$json = array();
while($row = mysql_fetch_array($result))
{
$json['uid']=$row['uid'];
$json['note']=$row['note'];
}
print json_encode($json);
然后
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
var jsontext = xmlhttp.responseText;
var json = JSON.parse(jsontext);
console.log(json.uid)
console.log(json.note)
}
}
您正在嘗試json_encode
的各個鍵的數組中,嘗試做json_encode($row);
否則,您將擁有一個JSON數組['my user id'],而不是一個JSON對象{uid:'my user id'}
另外,嘗試使用jQuery,您將能夠將響應解析為JSON對象。
$.post('myurl', {mydata}, function (jsonArray){/*success function*/}, 'json');
返回$ row作為json對象。
while($row = mysql_fetch_array($result))
{
$data[] = $row;
}
echo json_encode($data);
在您的JavaScript中,您現在應該可以使用xmlhttp.responseText.0.uid
(您可能希望遍歷不同的行)。
注意:我從來沒有使用純JavaScript來做到這一點,僅使用jQuery了,並且不確定是否可以正常使用。 您可能需要發送一個額外的標頭,以指示響應是JSON( header('Content-type: application/json');
),您可能需要首先解析responseText,以便可以將其解釋為一個對象。
有機會在客戶端使用JSON解析器(例如jQuery的解析器),並在JavaScript上使用類似
for(i=0; i<rows.length; i++)
console.log(rows[i])
行是$ .parseJSON(xmlhttp.responseText)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.