-2

我正在尝试使用 AJAX 执行 PHP 文件,该文件应该更新 txt 文件

这是我的 javascript

    function getXMLHttp()
    {
      var xmlHttp

  try
  {
    //Firefox, Opera 8.0+, Safari
    xmlHttp = new XMLHttpRequest();
  }
  catch(e)
  {
    //Internet Explorer
    try
    {
      xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch(e)
    {
      try
      {
        xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
      }
      catch(e)
      {
        alert("Your browser does not support AJAX!")
        return false;
      }
    }
  }
  return xmlHttp;
}



function MakeRequest()
{
  var xmlHttp = getXMLHttp();
  var host = window.location.hostname;
  var dir1=window.location.pathname.split("/")[1];
  var dir2=window.location.pathname.split("/")[2];
  var p = document.getElementById(\'CTI_IP\').value;
  var url=\'http://\'+host+\'/\'+dir1+\'/modules/company/include/file.php?var=\'+p;
  xmlHttp.open("POST",url,true);
  if (xmlHttp.readyState==4) 
 {
  xmlHttp.send();
 }
}

url很好,我提醒了它,复制粘贴链接,php文件工作完美,更新txt文件,但在ajax中不起作用?为什么

谢谢 !!

4

2 回答 2

0

你有一个语法错误:

var p = document.getElementById(\'CTI_IP\').value;
                                ^HERE

(以及类似的散布在各处)。

这应该显示在浏览器的 JavaScript 错误控制台中。

于 2013-01-30T13:04:17.763 回答
0

当您构建 URL 时,您构建它是错误的。您正在转义不需要转义的引号。它应该按如下方式构建:

var url = "http://" + host + "/" + dir1 + "/modules/company/include/file.php?var=" + p;

由于某些未知原因,您还转义了 getElementById 调用中的引号。它应该被如下调用:

var p = document.getElementById("CTI_IP").value;

唯一要转义引号的时间是您希望它们包含在字符串中。在这些情况下,您不应该对它们进行转义,因为它们表示一个字符串——它们不应该被包含在内。

我建议您研究一下字符串在 Javascript 中的工作原理。

一旦你修复了这些错误,删除你周围的 if 块xmlHttp.send()

你有:

if (xmlHttp.readyState==4) 
{
    xmlHttp.send();
}

但应该只有

xmlHttp.send();

最后,由于您没有在上面的示例中包含它,我假设您实际上并没有在MakeRequest()任何地方调用您的函数。您必须在代码中的某处调用该函数才能使其实际执行该函数。

只需按如下方式调用该函数:

MakeRequest();
于 2013-01-30T13:05:19.637 回答