使用JQuery获取PHP脚本的输出

时间:2013-09-03 19:20:03

标签: php jquery ajax

我正在尝试将PHP脚本的输出加载到使用JavaScript和JQuery中。我正在使用的JavaScript函数使用JQuery中的$ .get函数来调用php脚本,我想在另一个部门中显示它。我写的脚本是:

<script type="text/javascript">
function on_load() {
    $(document).ready(function() {
        alert('here');
        $.get("http://localhost/dbtest.php", function(data){
            alert('here too too');
            $("uname").html(data);
        });
    });
}

</script>

PHP脚本(dbtest.php)使用简单的echo语句:

echo "hello, world!!!";

我在这里收到第一个警报,但不是第二个。我在这里可以做错什么?

6 个答案:

答案 0 :(得分:2)

我认为uname是一个ID,在这种情况下你应该使用:

$("#uname").html(data);

你可以将它添加到你的php进行调试:

error_reporting(E_ALL ^ E_NOTICE);
ini_set("display_errors", 1); 

还尝试从您的ajax调用中删除http://并改为使用相对路径。

答案 1 :(得分:0)

下面的人指出选择器是错误的。确实这是一个问题,但我认为真正的问题是你没有得到第二个警报。可能你的php文件 localhost / dbtest.php 无法访问。如果在新选项卡中打开 localhost / dbtest.php ,会发生什么?

答案 2 :(得分:0)

这里有一个有效的例子:

<script src="http://code.jquery.com/jquery-1.10.2.min.js"></script>

<div id="uname"></div>

<script>
function on_load() {
    $(document).ready(function() {
        alert('here');
        $.get("http://localhost/dbtest.php", function(data){
            alert('here too too');
            $("#uname").html(data);
        });
    });
}

on_load();
</script>

小心same-origin-policy。加载dbtest.php的页面必须来自同一个源,除非您通过添加dbtest.php中的标头来授予其他来源。

答案 3 :(得分:0)

我认为问题是dbtest.php文件的路径。您说第二个alert 会显示,因此您的请求必定是错误的。

尝试将您的页面复制到dbtest.php相同的文件夹中,使用http://localhost/yourfile.php

打开浏览器中的页面

如果同时显示两个alert - 框,请尝试使用打开的developer console(Chrome / IE = F12)并查看是否有错误。

答案 4 :(得分:0)

您说您正在尝试从Phonegap应用程序向本地主机发出ajax请求。 Phonegap默认情况下会阻止向其他域发出ajax请求。您必须将localhost添加到白名单。以下是更多详细信息:http://docs.phonegap.com/en/1.9.0/guide_whitelist_index.md.html

答案 5 :(得分:0)

尝试在代码中添加一些错误处理,以便更好地了解发生的情况。

<script type="text/javascript">
function on_load() {
    $(document).ready(function() {
        alert('here');
        $.get("http://localhost/dbtest.php", function(data){
            alert('here too too');
            $("uname").html(data);
        }).fail(function () {
            alert("failed");
        });
    });
}
</script>