2011-01-26 55 views
-2

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

+0

原谅我调皮,但让我看到的代码。 AJAX绝对没有任何理由,因为该文件是动态呈现的。 – lonesomeday 2011-01-26 18:44:38

+0

“但它不需要这个问题”我可以问你为什么认为它不需要? – pt2ph8 2011-01-26 18:47:06

回答

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> 
0

如果Javascript语法正确,则Ajax有效。据我所知,它完全独立于页面呈现的语言(html/php/asp/cf /等)。

0

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

一旦生成的(或加载的)HTML从服务器上传出去,浏览器就不可能知道它是一个实际的PHP脚本还是一个静态的HTML文件。

0

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

0

我建议你使用Firebug跟踪什么是Ajax调用返回......看看吧:http://getfirebug.com/

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