是否可以使用AJAX和PHP获得多个响应?
由选择框触发的事件,当它更改值(onchange
)时,它会调用JavaScript函数并获取xmlhttp.responseText
。
但是在responseText
我们只能根据id更改一个值/ innerHtml。
我想使用AJAX更改2个或更多HTML。有可能吗?
这是我的AJAX功能:
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("txtStockQTY"+baris).value = "Validating..";
}
else if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
document.getElementById("txtStockQTY"+baris).value = xmlhttp.responseText;
}
}
xmlhttp.open("GET", "ajaxGetStock.php?id="+id, true);
xmlhttp.send();`
ajaxGetStock
如下:
$idbarang = $_GET['id'];
include "../connect.php";
$resultSetStockType = mysql_query("SELECT STOCK_QTY,STOCK_QTYUNIT,STOCK_SIZE,STOCK_SIZE2 FROM TSTOCK WHERE STOCK_ID = $idbarang",$con);
if($resultSetStockType and mysql_num_rows($resultSetStockType) > 0) {
while($rowSetStockType = mysql_fetch_array($resultSetStockType)) {
echo $rowSetStockType['STOCK_QTY']." ".$rowSetStockType['STOCK_QTYUNIT'];
}
}
else {
echo "--- stok tidak ditemukan ---";
}
我想从我的AJAX中获取几个返回值,并将其分配给几个类型为text的输入。
答案 0 :(得分:1)
在php中返回这样的JSON:
return json_encode([
'firstValue ' => 'my first value',
'secondValue' => 'my second value'
]);
然后在JS:
var data = JSON.parse(xmlhttp.responseText);
document.getElementById("txtStockQTY"+baris).value = data.firstValue;
注意:我讨厌jQuery,除了一件事:ajax调用。我建议你使用它以避免所有这些使代码难以阅读的代码行:)
答案 1 :(得分:0)
不是直接从数据库中回显结果,而是需要将它们存储在数组中并回显JSON编码的数组。
$array = array();
while($rowSetStockType = mysql_fetch_array($resultSetStockType)){
$tempval = $rowSetStockType['STOCK_QTY']." ".$rowSetStockType['STOCK_QTYUNIT'];
$array.push($tempval);
}
//When its done processing all the returned values, echo json_encoded array.
echo json_encode($array);
然后您将可以从javascript访问该数组。
答案 2 :(得分:0)
有几种方法可以解决这个问题,我会尝试解释其中的一些。
返回HTML元素
使用您的AJAX代码中的输入返回HTML代码,并使用innerHTML
代替.value
将其添加到div中,就像您现在所做的那样。
返回JSON
使用json_encode
将代码作为JSON对象返回,并使用JavaScript JSON函数填充输入。 Alan Tan已经在我输入时给你提供了一个例子。