Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/241.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 尝试从另一个.php页面加载一些文本,而不重新加载当前页面_Javascript_Php_Ajax - Fatal编程技术网

Javascript 尝试从另一个.php页面加载一些文本,而不重新加载当前页面

Javascript 尝试从另一个.php页面加载一些文本,而不重新加载当前页面,javascript,php,ajax,Javascript,Php,Ajax,在这里尝试遵循这个示例 我有这个密码 function showVoteCount(str) { if (str=="") { document.getElementById("txtVoteCount").innerHTML=""; return; } if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest(); }

在这里尝试遵循这个示例

我有这个密码

function showVoteCount(str)
{
if (str=="")
  {
  document.getElementById("txtVoteCount").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("txtVoteCount").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","getVote.php?id="+str,true);
xmlhttp.send();
}

function showVoteUp(str)
{
if (str=="")
  {
  document.getElementById("txtVoteMessage").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("txtVoteMessage").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","voteup.php?id="+str,true);
xmlhttp.send();
}

function showVoteDown(str)
{
if (str=="")
  {
  document.getElementById("txtVoteMessage").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("txtVoteMessage").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","votedown.php?id="+str,true);
xmlhttp.send();
}
echo '<a href="view_definition.php?id='. $row['id'] .'&voteup=1" onclick="showVoteUp('. $row['id'] .');showVoteCount(' . $row['id'] . '); return false;">Vote Up</a>';
然后我有一个与此代码的链接

function showVoteCount(str)
{
if (str=="")
  {
  document.getElementById("txtVoteCount").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("txtVoteCount").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","getVote.php?id="+str,true);
xmlhttp.send();
}

function showVoteUp(str)
{
if (str=="")
  {
  document.getElementById("txtVoteMessage").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("txtVoteMessage").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","voteup.php?id="+str,true);
xmlhttp.send();
}

function showVoteDown(str)
{
if (str=="")
  {
  document.getElementById("txtVoteMessage").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("txtVoteMessage").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","votedown.php?id="+str,true);
xmlhttp.send();
}
echo '<a href="view_definition.php?id='. $row['id'] .'&voteup=1" onclick="showVoteUp('. $row['id'] .');showVoteCount(' . $row['id'] . '); return false;">Vote Up</a>';
echo';
我想做的是

获取从
getVote.php返回的文本
进入
txtVoteCount

和从
voteup.php
返回的文本进入
txtVoteMessage

但是当从链接调用
showVoteCount
时,从
getVote.php
返回的文本将覆盖我的
txtVoteCount
txtVoteMessage


那么,我如何使它按我希望的方式工作呢?

我想知道您的xmlhttp变量是否正在变得全局并相互影响?尝试将xmlhttp对象声明为“
var xmlhttp=new
etc…”。包含“
var
”将更改该变量的范围,使其包含在函数中

这样如何:更改每个函数以如下方式开始:

function showVoteUp (str)
{
 var xmlhttp; // add this line to all your functions to declare xmlhttp as a "scoped" var.
if (str == "") {
//... etc etc, the rest of your code... 
编辑: JavascriptIsSexy有一篇很好的文章描述了范围,以及声明变量时应该注意的事项:

虽然学习ajax的内部工作原理很好,但您应该让开发的第三方为您完成繁重的工作。jQuery让我开始使用javascript,现在我离不开它,甚至用node.js开发网站……由于我使用jQuery所做的所有工作,它的异步行为很容易掌握。此外,jQuery还使php变得更简单。json_encode几乎一直是我所有php脚本中的最后一行。可惜我没有机会尝试。我只使用1个php文件返回一个JSON,返回2个变量,然后解析JSON并将其放入适当的txtStrings中,从而解决了这个问题。我认为JSON方法是更好的选择,但不管怎样,您可能希望在其中添加“var”——这没有污染全局变量的意义。整合通话几乎总是一个不错的选择。处理纯JS Ajax而不是运行jQuery,真是太好了!我让我的JSON工作。但是我很好奇你的解决方案是否能解决我之前的问题,所以我创建了一些测试页面,使用旧的方法来点击2个php文件并进行测试。太糟糕了,我的网站的ftp关闭了。一旦它出现,我会测试它,如果它有效,我会接受你的答案,这样其他可能有同样问题的人也可以使用这个答案:)Groovy——我希望它有效!你在现场进行开发吗?我签出了“unurbandictionary”,并注意到底部的sql,所以我认为您正在进行一些测试。您是否已签出XAMPP进行本地开发?非常酷的网站,顺便说一句!好的,w3示例是完全有效的,至少对于他们的简短示例来说是这样:-)当我了解到
var
这件事时,我开始总是显式地用
var
声明变量(除非需要其他行为)--如果你不小心的话,它真的会咬你一口。我在答案中添加了一个描述变量范围的链接,以获取更多信息。另外,我建议在本地使用xampp进行开发——这是一种在发布之前检查内容的非常好、简单、快速的方法。比ftp记录每一个变化要快得多。快乐编码!