我想用一个ajax-response更新两个不同的值。
<span id="nr1">Change this</span>
<span id="nr2">and change this</span>
现在我可以改变一个值,我喜欢这样:
document.getElementById('nr1').innerHTML = xmlHttp.responseText;
是否可以做这样的事情:
document.getElementById('nr1').innerHTML = xmlHttp.responseText1;
document.getElementById('nr2').innerHTML = xmlHttp.responseText2;
****更新**** 响应来自php。 我是JSON的新手。
答案 0 :(得分:4)
XMLHTTPRequest没有responseText1和responseText2属性(我假设你的xmlHttp是),只有responseText,所以你必须在responseText字段中返回一些可解析的东西(比如JSON)。因此,您的服务器可以发回{“firstResponse”:“value1”,“secondResponse”:“value2”},您可以从该JSON字符串填充您的字段。使用json.org的json2.js库
<script type="text/javascript" src="json2.js"></script>
. . .
var theResponse = JSON.parse(xmlHttp.responseText);
document.getElementById('nr1').innerHTML = theResponse.firstResponse;
document.getElementById('nr2').innerHTML = theResponse.secondResponse;
修改强> 为了从PHP制作这个JSON响应,你应该使用PHP JSON libraries。 json_encode page中有几个例子可以帮助您入门。我发布的其他代码(在其他回复中发布)都是浏览器端的javascript代码。
$arr = array ('firstResponse'=>'value1','secondResponse'=>'value2');
echo json_encode($arr);
将该代码放入PHP脚本中以生成JSON字符串
{"firstResponse":"value1","secondResponse":"value2"}
然后,之前发布的javascript代码将解析该内容。
答案 1 :(得分:1)
如果您信任并控制服务器,只需在JSON中返回字典以获取响应,并在客户端使用它。所以:
v = eval(xmlHttp.responseText);
document.getElementById('nr1').innerHTML = v['nr1']
document.getElementById('nr2').innerHTML = v['nr2']
答案 2 :(得分:0)
如前所述,将Ajax调用作为JSON对象返回是有意义的。我建议使用更安全的JSONP调用(不知道你是否可以使用任何本地支持它的库)。
// Your script returns this
callback123(
{
"nr1" : "This is conten for nr1",
"nr2" : "Some content for nr2"
});
// JavaScript callback looks like this
function callback123(data)
{
for(var key in data)
document.getElementById(key).innerHTML = data[key];
}
答案 3 :(得分:0)
使用JSON.parse