Php 如何使用AJAX返回两个字符串?

Php 如何使用AJAX返回两个字符串?,php,ajax,Php,Ajax,如何使用AJAX返回两个参数 这是我的。我的html页面上有两个文本区域 <textarea name="source" id="source" onkeyup="myfunc(this.value);}"></textarea> <textarea name="res1" id="res1"></textarea> <textarea name="res2" id="res2"></textarea> 因此,ajax_f

如何使用AJAX返回两个参数

这是我的。我的html页面上有两个文本区域

<textarea name="source" id="source" onkeyup="myfunc(this.value);}"></textarea>
<textarea name="res1" id="res1"></textarea>
<textarea name="res2" id="res2"></textarea>
因此,ajax_file.php进行一些计算,计算q和p并返回q。字符串q返回到textareares1。一切正常,工作正常。但是,我也想将值p传递给res2(另一个文本区域)。它是经过计算的,但我不知道如何传回多个参数。怎么做? 谢谢。

最明显的方法(如果要发送两个参数)是

如果要返回两个参数,请使用php中的数组并用json编码

$arr = array();

$arr['str1'] = $str1;
$arr['str2'] = $str2;
header('Content-type: application/json');
echo json_encode($arr);
编辑-在回显数组之前还设置correcxt头。完成后,在客户端解析JSON

xmlhttp.onreadystatechange=function()
{
    if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
        var resp = JSON.parse(xmlhttp.responseText);
        document.getElementById("res1").innerHTML=resp.str1;
        document.getElementById("res1").innerHTML=resp.str2;
    }
}

您可以发送一个带分隔符的字符串“Value1、Value2、Value3”,然后使用javascript拆分方法,或者使用JSON:

查看JSON,javascript可以本机处理它。这比任何类型的字符串拆分都要好,因为它确保输出不包含用于分解结果的一个或多个字符

工作流程如下:

  • PHP将结果写入数组,然后使用json_encode()对其进行编码,并将其作为响应进行响应
  • Javascript使用array=JSON.parse(result)将其转换为可用的Javascript对象,其中result是来自PHP的结果

PHP的$array['me']='you'将成为JavaScript中的array['me'.

ajax返回页面的整个输出,因此不能返回两个字符串,但可以将该字符串分成两个

例如,页面的输出是:HelloWorld

现在您希望Hello和World分开,因此将此输出设置为:Hello,World或Hello-World或Hello | World

然后用那个分隔符把它分开


$(“PAGE”,{“var”:“value”},函数(response){response.split(delimiter)})

对不起,我还是不清楚。好的,我按照您所说的方式将$p和$q放入数组$arr中,并使echo json_编码($arr);好啊现在,如何将$arr['str1']提取到res1中?我使用document.getElementById(“res1”).innerHTML=xmlhttp.responseText;在我的.js文件中,当我只有一个返回参数时。谢谢。@Haradzieniec您应该解析JSON客户端,然后使用参数。我编辑了我的答案。JSON通常是一种浏览器方法,在较旧的浏览器中有一些javascript库可供使用。我已经将您的代码放在我问题的末尾(请参见上文),询问它为什么不起作用。它得到一个错误。谢谢。@Haradzieniec到底是什么错误?也许你应该再问一个问题谢谢你的提问。我打错了。是我的错。现在它起作用了。我投票赞成你的问题。非常感谢你!!!
$arr = array();

$arr['str1'] = $str1;
$arr['str2'] = $str2;
header('Content-type: application/json');
echo json_encode($arr);
xmlhttp.onreadystatechange=function()
{
    if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
        var resp = JSON.parse(xmlhttp.responseText);
        document.getElementById("res1").innerHTML=resp.str1;
        document.getElementById("res1").innerHTML=resp.str2;
    }
}