【问题标题】:How can I call a PHP file with GET on an AJAX request?如何在 AJAX 请求上使用 GET 调用 PHP 文件?
【发布时间】:2012-04-13 23:01:01
【问题描述】:

我正在尝试从 AJAX 请求中分配有 GET 参数的 PHP 文件中取回数据:

xmlhttp.open("GET","getMyData.php?name="+name+"&email="+email,true);

我可以这样调用 getMyData.php,还是必须在项目的根目录中?现在与 javascript 文件位于同一目录中。

如果可能的话,还有一个小例子,说明如何将返回的数据插入到输入字段中。

非常感谢!

【问题讨论】:

    标签: php javascript ajax xmlhttprequest


    【解决方案1】:

    这里是例子

    var xmlhttp;
    if (window.XMLHttpRequest)
    {// code for IE7+, Firefox, Chrome, Opera, Safari
    xmlhttp=new XMLHttpRequest();
    }
    else
    {// code for IE6
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.onreadystatechange=function()
    {
    if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
      //xmlhttp.responseText; //content 
      document.getElementById("myDiv").innerHTML=xmlhttp.responseText; //write inside myDiv
    }
    }
    xmlhttp.open("GET","getMyData.php",true);
    xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
    xmlhttp.send("name="+name+"&email="+encodeURIComponen(email));
    xmlhttp.send();
    }
    

    Look here获取更多信息和示例

    【讨论】:

    • encodeURIComponent 可用于转义 url 中的数据。有效的电子邮件可以包含“&”。
    • 谢谢,解决方案有效。问题是我使用的 php 文件。
    【解决方案2】:

    看看relative and absolute paths。您将了解/../ 等是如何工作的。如果 PHP 文件与执行 javascript 的网页位于同一文件夹中,您还将看到您的示例是正确的。

    关于最后一部分,我将截取一点代码(例如,您可以完全找到 here),但重点是:

    if (xhr.readyState === 4 && xhr.status === 200) {
        // The datas returned by PHP are in the variable 'xhr.responseText' or 'xhr.responseXml'.
        // In this case you can add straight the HTML into a DIV, but you usually have datas in JSON.
        // To "transform" your JSON string into a javascript object, use the following:
        //     var obj = JSON.parse(xhr.responseText)
        document.getElementById("myDiv").appendChild(xhr.responseXml) // Don't use 'innerHTML', it is evil.
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-07-22
      • 2015-11-28
      • 2016-11-19
      • 2016-06-18
      • 2018-01-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多