0

我正在尝试将 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!!!";

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

4

6 回答 6

2

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

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

您可以将其添加到您的 php 以进行调试:

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

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

于 2013-09-03T19:22:13.927 回答
0

我认为问题在于您的dbtest.php文件的路径。你是说你 seecondalert不会显示,所以你的请求一定是错误的。

尝试将您的页面复制到同一个文件夹中,例如dbtest.php在浏览器中打开页面http://localhost/yourfile.php

如果这没有显示两个alert-boxes 尝试打开开发者控制台(Chrome/IE = F12) 并查看是否有错误。

于 2013-09-03T19:35:31.087 回答
0

您说您正在尝试从 Phonegap 应用程序向您的 localhost 发出 ajax 请求。默认情况下,Phonegap 会阻止向其他域发出 ajax 请求。您必须添加localhost到白名单。这里有更多细节:http ://docs.phonegap.com/en/1.9.0/guide_whitelist_index.md.html

于 2013-09-03T19:36:03.147 回答
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>
于 2013-09-03T22:40:50.590 回答
0

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

于 2013-09-03T19:28:36.757 回答
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>

谨防同源策略。加载 dbtest.php 的页面必须来自同一来源,除非您通过添加 dbtest.php 的标头来授予其他来源。

于 2013-09-03T19:30:20.670 回答