PHP AJAX noob问题

时间:2011-01-26 18:40:12

标签: php ajax

好的,这可能看起来像是一个愚蠢的问题。我正在尝试完成一个相当简单的任务,即通过php文件从mySQL数据库生成一些动态内容。这很好,不幸的是,当我尝试添加一些AJAX功能来填充另一个选择框时,根据选择它不起作用。现在我确定你的想法让我看到了代码,但问题不需要它。现在,当我删除页面的php部分并创建一个直接的html文件而没有任何东西正在由php填充时,AJAX调用正常工作,这里的问题是我没有从数据库生成任何动态,所以这种方法是没有的好。所以这里有一个问题,如果文件是通过PHP呈现的,AJAX不起作用吗?谢谢你的帮助提前。

5 个答案:

答案 0 :(得分:0)

如果Javascript语法正确,Ajax会起作用。它完全独立于页面渲染的语言(html / php / asp / cf / etc.)。

答案 1 :(得分:0)

AJAX是通过Javascript完成的。如果从页面中删除动态内容使AJAX工作,那么看看PHP正在吐出什么打破了javascript。

一旦生成的(或加载的)HTML从服务器传输到线路上,浏览器就无法判断它是实际的PHP脚本还是静态HTML文件。

答案 2 :(得分:0)

如果您尝试执行通过AJAX调用包含的JS,它将无法正常工作。您必须创建一个函数作为回调并在AJAX成功时运行回调。

答案 3 :(得分:0)

我建议您使用Firebug来跟踪返回的Ajax调用内容...看看它:http://getfirebug.com/

他们是对的,顺便说一下,看看你的PHP脚本,那里可能还有一些制动。

答案 4 :(得分:0)

  

现在我确定你的想法让我看到了   代码,但它不需要   问题

那就是你错了。这将有助于为您提供更好的答案。

  

所以这是问题,AJAX不是   如果文件是通过PHP呈现的?

无论您使用服务器端语言,它都能正常运行。

一个小例子:

<?php
header('Content-Type:text/html; charset=UTF-8');

$_GET = filter_input_array(INPUT_GET, FILTER_SANITIZE_STRING);

if (isset($_GET['min']) && isset($_GET['max'])) {
    echo rand($_GET['min'],$_GET['max']);
    exit();
}
?>
<html>
    <body>
        <p id="randomtext"></p>
        Low:<br /><input type="text" id="min" value="0" /><br />
        High:<br /><input type="text" id="max" value="100" /><br />
        <button id="randomgenerator">Generate random number</button>
        <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
        <script type="text/javascript">
            $(document).ready(function() {
                // Handler for .ready() called.
                $("#randomgenerator").click(function() {
                    $.get("./",  { "min": $("#min").val(), "max": $("#max").val() }, function(data) {
                        $("#randomtext").html(data);
                    });
                });
            });
        </script>
    </body>
</html>