2

我已经在互联网上搜索了几个小时,但仍然无法使这个简单的示例工作。我希望有人可以帮助我。我正在尝试使用 Javascript 来显示 php 文件的内容。显示应该经常刷新,因为最终它将用于显示来自 MySql 数据库的文本匹配项,这些匹配项与在搜索栏中输入的字符匹配(类似于 Google 的搜索栏)。我将为此使用 setinterval,但我还没有。我的问题是我有很少的 javascript/AJAX 经验,只是无法让它工作。我已经将它简化为一个简单的请求,但仍然无法使其工作。请建议什么不起作用:

内容应该可见的 index.html 是:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script type="text/javascript" src="/js/jquery-1.3.2.min.js"></script>
</head>

<body>

<script type="text/javascript">

$().ready(function() {
$("#dynamic").load("blasty.php");
});

</script>
<div id="dynamic"></div>
</div>
</body>
</html>

blasty.php 包含:

<?php
echo "hello cruel world!";
?>

提前致谢!

4

3 回答 3

1

确保您的 blasty.php 文件在同一个域中。

此外,为了帮助调试 javascript,请在​​ Chrome 或 Firefox 中右键单击并转到 Inspect Element。然后转到控制台窗口,它将显示大多数错误。

我还推荐这个关于 javascript 的 youtube 视频。我它帮助我弥合了一些 javasrcipt 陷阱的差距。http://www.youtube.com/watch?v=ljNi8nS5TtQ

这是关于调试器的链接:https ://developers.google.com/chrome-developer-tools/

正如@Explosion Pills 所说,FireFox 的 Firebug 是另一个不错的选择。我将使用两者来帮助调试 javascript。Firebug 很好,因为在 Net 选项卡下,它会显示在后台发生的实际 http 请求,包括参数、响应、标头信息等。

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Untitled Document</title>
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
    </head>
    <body>
    <script type="text/javascript">
    $(document).ready(function() {
        $("#dynamic").load("blasty.php");
    });
    </script>
    <div id="dynamic"></div>
    </div>
    </body>
    </html>
于 2013-02-05T03:39:15.010 回答
0

document缺少$().

<script type="text/javascript">

$(document).ready(function() {
    $("#dynamic").load("blasty.php");
});

</script>

从视觉上看,这是我看到的唯一问题。

于 2013-02-05T03:27:52.120 回答
0

我使用$.get而不是$.load.

尝试这样的事情:

$.get("blasty.php",
      { nbRandom: Math.random() },
      function(data){
        $("#dynamic").html(data);
      });

nbRandom是为了防止在IE中缓存。

使用 Firebug 确保有来自 AJAX 的响应并从那里开始。

于 2013-02-05T03:34:28.120 回答