html标签在响应标签内部无效AJAX PHP

时间:2015-06-03 00:25:40

标签: php html ajax response

我有一个使用ajax的工作代码,当用户在输入框中输入内容时,它会在屏幕上输出'hello',而不必按Enter键。但是,有一个问题。让我先向您展示一部分工作代码:

<?php

include('head.php');

echo "<response>";

echo "hello";

echo "</response>";

?>

^ ---以上代码有效,只要用户在输入框中输入内容,就会在屏幕上输出'hello'。输入框的代码以及其他所有内容都位于不同的文件中,除非有要求,否则不会显示。问题是你不能在响应标签中使用html标签:

<?php

include('head.php');

echo "<response>";

echo "<i>"."hello"."</i>";

echo "</response>";

?>

^ ---上面的代码将输出单词'undefined',而不是斜体字'hello'。我不知道为什么会这样做,所以如果有人知道原因,以及如何解决这个问题,或者如果有解决方法这个问题,请告诉我。谢谢。

编辑:请求在一个名为test5.html的单独文件中显示ajax的部分代码:

<?php

include('ajax.php');

?>

<html>
<body>
<input type="text" id="userInput" onKeyUp = "process('userInput','output','foodstore.php')"/>
<div id="output" />
</body>
</html>

名为ajax.php的文件中的更多代码:

<script type = "text/javascript">

var xmlHttp = createXmlHttpRequestObject();

function createXmlHttpRequestObject(){
var xmlHttp;

if(window.ActiveXObject){ 
try{
    xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}catch(e){
    xmlHttp = false;
}
}else{ 
try{
    xmlHttp = new XMLHttpRequest();
}catch(e){
    xmlHttp = false;
}
}

if(!xmlHttp){
//alert("Cant create that object !")
}
else
return xmlHttp;
}

function process(text,output,link){

//text = 'userInput';

if(xmlHttp.readyState==0 || xmlHttp.readyState==4){
food = encodeURIComponent(document.getElementById(text).value);
xmlHttp.open("GET", link+food,true);

xmlHttp.onreadystatechange = function() {
handleServerResponse(text,output,link);
};

xmlHttp.send(null);
}else{
setTimeout("process(text,output,link)",1000);//cekaj 1s pa probaj opet
}
}

function handleServerResponse(text,output,link){

if(xmlHttp.readyState==4){ 
if(xmlHttp.status==200){
    xmlResponse = xmlHttp.responseXML; //izvlaci se xml sto smo dobili
    xmlDocumentElement = xmlResponse.documentElement;
    message = xmlDocumentElement.firstChild.data;
    document.getElementById(output).innerHTML = message;

setTimeout(function() {
    process(text,output,link);
}, 1000);

}else{
    //alert('Someting went wrong !');
}
}
}

</script>

1 个答案:

答案 0 :(得分:1)

您如何将数据发送到回复代码?

您应该使用.html

您的成功功能应如下所示:

function(data) { $('response').html(data); }

更新: XML内容必须像这样更新,以包含HTML。

<![CDATA[<i>Hello</i>]]>