Javascript 如何使用AJAX在两个不同的html元素中划分两个不同回声的结果
我正在使用AJAX从php文件查询数据库。。。。然后,数据库查询的结果应该放在两个不同的html文本区域中。这是我的代码: javascript:Javascript 如何使用AJAX在两个不同的html元素中划分两个不同回声的结果,javascript,php,ajax,Javascript,Php,Ajax,我正在使用AJAX从php文件查询数据库。。。。然后,数据库查询的结果应该放在两个不同的html文本区域中。这是我的代码: javascript: function ajax_post(){ // Create our XMLHttpRequest object var hr = new XMLHttpRequest(); // Create some variables we need to send to our PHP file var url = "displaypatientmessa
function ajax_post(){
// Create our XMLHttpRequest object
var hr = new XMLHttpRequest();
// Create some variables we need to send to our PHP file
var url = "displaypatientmessage.php";
var fn = document.getElementById("title").value;
//var ln = document.getElementById("last_name").value;
var vars = "title="+fn;
hr.open("POST", url, true);
// Set content type header information for sending url encoded variables in the request
hr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
// Access the onreadystatechange event for the XMLHttpRequest object
hr.onreadystatechange = function() {
if(hr.readyState == 4 && hr.status == 200) {
var return_data = hr.responseText;
document.getElementById("question").innerHTML = return_data;
}
}
// Send the data to PHP now... and wait for response to update the status div
hr.send(vars); // Actually execute the request
document.getElementById("question").innerHTML = "processing...";
}
php
您需要使用类似~
的字符将两个输出连接起来
echo $row[0] . '~' . $row[1];
在javascript代码中,将响应拆分为~
,如下所示:
var return_data = hr.responseText;
var temp = return_data.split('~');
document.getElementById("question").innerHTML = temp[0];
document.getElementById("answer").innerHTML = temp[1];
基本概念是:
您需要通过AJAX传递多个字符串,而不是一个字符串
用一个字符连接两个字符串
在javascript末尾,按~
分解(拆分)输出
echo $row[0] . '~' . $row[1];
这里,你可以得到数组
数组的第一个元素是问题,第二个元素是答案
非常简单 不要像那样回显文本,只需返回一个json对象即可
使用php函数json\u encode
将数组编码为json:
json_编码(数组('question'=>$row[0],'answer'=>$row[1])代码>
然后在success函数中将结果解析为如下javascript对象:
var return_data = hr.responseText;
var temp = return_data.split('~');
document.getElementById("question").innerHTML = temp[0];
document.getElementById("answer").innerHTML = temp[1];
var result=JSON.parse(result)代码>
然后,您可以通过执行以下操作来访问行以填充字段
result.question;结果。答案
当前代码无法工作的原因是ajax查询需要1个结果。因此,它无法将你的两个回声识别为一对
编辑:
还可以使用jQuery,因为vanilla javascript笨重难看。那么,问题是什么?AJAX响应的格式是什么?或者更好的是,将行作为JSON字符串返回。