-2

txtファイルを更新するはずのAJAXを使用してPHPファイルを実行しようとしています

ここに私の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 の周りの if ブロックを削除しますxmlHttp.send()

あなたが持っている:

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

しかし、持っているべきです

xmlHttp.send();

最後に、上記の例にはそれを含めていないため、実際にはMakeRequest()どこでも関数を呼び出していないと思います。実際に関数を実行するには、コードのどこかでその関数を呼び出す必要があります。

次のように関数を呼び出すだけです。

MakeRequest();
于 2013-01-30T13:05:19.637 に答える