2011-01-26 107 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腳本,有可能是一些制動在那裏。