Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用AJAX在两个不同的html元素中划分两个不同回声的结果_Javascript_Php_Ajax - Fatal编程技术网

Javascript 如何使用AJAX在两个不同的html元素中划分两个不同回声的结果

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

我正在使用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 = "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字符串返回。