我有一个使用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>
答案 0 :(得分:1)
您如何将数据发送到回复代码?
您应该使用.html
您的成功功能应如下所示:
function(data)
{
$('response').html(data);
}
更新: XML内容必须像这样更新,以包含HTML。
<![CDATA[<i>Hello</i>]]>