gpt4 book ai didi

php - ajax 的代码不起作用

转载 作者:行者123 更新时间:2023-11-30 17:56:32 25 4
gpt4 key购买 nike

首先,对不起我的英语...

  • “func 0”是 ajax。
  • “func 1”是每 1000 毫秒刷新一次 ajax 代码的代码。当代码工作时,它会刷新 refesh.php 页面并将其上的文本发送到“bbb”div。
  • “func 2”是成员编写文本的代码,然后将文本发送到 send.php 页面(将文本发送到 mySQL),然后在“aaa”div 中显示文本。

有人可以帮我理解为什么代码不起作用吗?

  • 如果我在页面中只输入“func 0”和“func 1”,一切正常。
  • 如果我在页面中只放入“func 0”和“func 2”,一切也都很好。
  • 但是如果我把这 3 个功能都放在页面上,它就不起作用了。我不知道为什么当成员尝试发送文本时,它会将文本发送到 mySQL (func 2),但它会在 "aaa"上显示来自 refresh.php (func 1) 的文本 div (func 2),而不是显示成员发送到“aaa”div 的文本。

我希望你能弄清楚问题出在哪里,我有点难以解释


这是代码:

<!--- func 0 --->
<script>
function refresh(name, url, info, type)
{
var str;
if (type=="send") {
str = document.forms["aaa"]["txt"].value;
}
if (type=="send" && str=="")
{
document.getElementById(name).innerHTML="";
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById(name).innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET",url+"?info="+str,true); // send the text to page
xmlhttp.send();
return false;
}
</script>
<!--- end - func 0 --->


<!--- func 1 --->
<script type="text/javascript">
setInterval("refresh('bbb', 'refresh.php', '', 'refresh')", "1000");
</script>
<div id='bbb'> div to refresh at 1000 ms </div>
<!--- end - func 1 --->


<!--- func 2 --->
<form name='aaa' onsubmit="return refresh('aaa', 'send.php', '', 'send');" method='post'>
txt: <input type='text' name='txt' autofocus='autofocus'> <input type='submit' value=' send '>
</form>
<div id='aaa'> div that <b>*send*</b> txt to sql </div>
<!--- end - func 2 --->

最佳答案

主要问题是 xmlhttp 被定义为一个全局变量,所以如果你碰巧有两个 AJAX 查询同时加载,它们会相互干扰。使用 var xmlhttp 来解决这个问题。

也就是说,您不应该支持 IE6,更不应该支持 IE5。只需这样做:

var xhr = new XMLHttpRequest();
xhr.open("GET",url+"?info="+str,true);
xhr.onreadystatechange = function() {
if( this.readyState == 4 && this.status == 200) {
document.getElementById(name).innerHTML = this.responseText;
}
};
xhr.send();

关于php - ajax 的代码不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17944983/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com