用AJAX获取文件,can';我不懂PHP

用AJAX获取文件,can';我不懂PHP,php,ajax,url,fetch,text-files,Php,Ajax,Url,Fetch,Text Files,我已经检查了发布前提出的建议,希望我现在没有错过任何东西 我有一段代码,我用它来为我的网站获取txt文件,但现在我需要重做代码,这样它就可以同时获取txt和php文件,但它不会读取php脚本。我现在有点害怕把代码弄乱,所以我走在安全的一边,在这里问是否有人知道代码的一个好的补充。这是相当尴尬的,我仍然有代码的IE 5和6中,所以如果你想删除,在同一时间,继续。我保证,我不会因此恨你的 更新: 我有四个文件: html-使用ajax脚本调用.js文件。 js-带有我所有的javascript(和s

我已经检查了发布前提出的建议,希望我现在没有错过任何东西

我有一段代码,我用它来为我的网站获取txt文件,但现在我需要重做代码,这样它就可以同时获取txt和php文件,但它不会读取php脚本。我现在有点害怕把代码弄乱,所以我走在安全的一边,在这里问是否有人知道代码的一个好的补充。这是相当尴尬的,我仍然有代码的IE 5和6中,所以如果你想删除,在同一时间,继续。我保证,我不会因此恨你的

更新:
我有四个文件:
html-使用ajax脚本调用.js文件。
js-带有我所有的javascript(和simular)代码。
php-包含。。。好吧,你明白了。

我必须以某种方式调用php代码,就像调用我的txt文件一样,但当然,php可以正常工作。我对AJAX非常陌生,所以我现在不敢乱写这段代码,但我想我可能能够添加某种if语句,按预期调用php文件。
但我不知道那个代码可能是什么,也不知道应该把它放在哪里,这样事情才能相应地工作。当然,任何帮助都会在代码中得到认可和认可

下面是包含在.js文件中的AJAX代码:

/*Load the link.*/
function loadXMLDoc(url)
{
    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("leftCol").innerHTML=xmlhttp.responseText;
    }
    }
    xmlhttp.open("GET",url,true);
    xmlhttp.send();
}
/*Highly unnecessary, but I wanted to see if it worked and it looks better on the .html-page.*/
function get_link(url)
{
  loadXMLDoc(url);
}

它只是不读取php脚本

这是一个相当模糊的陈述,但这里有几个可以作为解决方案的指针:

PHP文件在服务器上解释,因此当您对该页面进行Ajax调用时,客户端收到的是该PHP脚本的结果,而不是其内容

您直接在HTML中分配查询结果,如果结果包含不呈现任何内容的数据,您将看不到任何内容。例如,此处的内容
文本bla bla
将不显示任何内容

如果要确保从文件中获取一些数据,只需在收到内容时发出警报即可

确保PHP页面的路径正确。要检测文件是否未给出404错误代码或任何其他错误代码,可以使用以下方法:

xmlhttp.onreadystatechange = function() {
    if (xmlhttp.readyState == 4) {
        if (xmlhttp.status == 200) {
            document.getElementById("leftCol").innerHTML = xmlhttp.responseText;
        } else {
            alert("Error " + xmlhttp.status);
        }
    }
}

它只是不读取php脚本

这是一个相当模糊的陈述,但这里有几个可以作为解决方案的指针:

PHP文件在服务器上解释,因此当您对该页面进行Ajax调用时,客户端收到的是该PHP脚本的结果,而不是其内容

您直接在HTML中分配查询结果,如果结果包含不呈现任何内容的数据,您将看不到任何内容。例如,此处的内容
文本bla bla
将不显示任何内容

如果要确保从文件中获取一些数据,只需在收到内容时发出警报即可

确保PHP页面的路径正确。要检测文件是否未给出404错误代码或任何其他错误代码,可以使用以下方法:

xmlhttp.onreadystatechange = function() {
    if (xmlhttp.readyState == 4) {
        if (xmlhttp.status == 200) {
            document.getElementById("leftCol").innerHTML = xmlhttp.responseText;
        } else {
            alert("Error " + xmlhttp.status);
        }
    }
}

正如上面的评论者所说,最好使用第三方工具来完成这些事情——如果没有其他原因,那就是为了大大提高跨浏览器的兼容性

如果要使用,代码将缩减为

function get_link(url)
{
    $.ajax({url: url, success: success:function(result){
            //the code / resulting string will be in the result variable.
    }});
}
jQuery CDN托管:

让我问一下。。。如果您将代码更改为

function get_link(url)
{
    window.location=url;
}

您的web浏览器是否成功导航到您试图通过AJAX检索的页面?如果没有,您的PHP语法可能有问题。

正如上面的评论员所说,最好使用第三方工具来完成这些事情——如果没有其他原因,只是为了大大提高跨浏览器的兼容性

如果要使用,代码将缩减为

function get_link(url)
{
    $.ajax({url: url, success: success:function(result){
            //the code / resulting string will be in the result variable.
    }});
}
jQuery CDN托管:

让我问一下。。。如果您将代码更改为

function get_link(url)
{
    window.location=url;
}

您的web浏览器是否成功导航到您试图通过AJAX检索的页面?如果没有,您的PHP语法可能有问题。

是否考虑过使用Jquery或mootools之类的库?当然,这样做会使日常任务变得更加简单。有没有想过使用Jquery或mootools之类的库?当然,这样做会让日常工作变得容易很多。不知道这是否会让事情变得不那么模糊,但我更新了帖子。嗯。。。我想我明白这是怎么回事。只要在.php文件中有脚本,就无法从中收集任何内容。当我这样做的时候,我会看到发生了什么。看看它是否能让我上路。:)我不知道这是否会让它变得更模糊,但我更新了帖子。嗯。。。我想我明白这是怎么回事。只要在.php文件中有脚本,就无法从中收集任何内容。当我这样做的时候,我会看到发生了什么。看看它是否能让我上路。:)我非常怀疑这能解决OP问题。使用第三方工具有助于简化Ajax代码,但它并不能神奇地解决所有与Ajax调用相关的问题。使用jQuery并不是所有问题的答案。我同意,而且我从未说过它会。我说我建议它是出于各种原因,包括兼容性。它现在不读取任何php代码,即使是一个简单的echo“;。我将尝试使用jquery,看看是否可以让它以其他方式工作。我需要在页面上的一个div中打开它,就像网站上的所有其他链接一样,所以我真的不知道如何处理你的上一个代码。我非常怀疑这会解决OP问题。使用第三方工具有助于简化Ajax代码,但它并不能神奇地解决所有与Ajax调用相关的问题。使用jQuery并不是所有问题的答案。我同意,而且我从未说过它会。我说我建议它是出于各种原因,包括兼容性。它现在不读取任何php代码,即使是一个简单的echo“;。我将尝试使用jquery,看看是否可以让它以其他方式工作。我需要在页面上的一个div中打开它,就像该站点上的所有其他链接一样,所以我真的不知道如何处理您的上一个代码。