2010-09-12 68 views
0

即時通訊開始與Ajax,我有包括Ajax文件的問題。 寫在原始頁面(如index.php)和放置在(頭)部分的Ajax代碼工作正常,但是當我嘗試在外部文件中放置代碼(在js文件夾中,其中放置prototype.js文件) ,我沒有得到任何迴應,甚至在Firefox錯誤控制檯中也沒有。簡單的Ajax /原型問題

我沒有改變Ajax代碼,除了調用PHP函數的url。

編輯:

AJAX調用文件:

<script type="text/javascript" src="js/prototype.js"></script> 
<script type="text/javascript" src="js/myValidation.js"></script> 
</head><body> 
.... 
Username: <input type="text" name="uname" id='uname' /> 
<a href="JavaScript:Validate();"> Available?</a> 
<span id="result"></span> 
Email address: <input type="text" name="email" /> 
... 

我embaded在HTML調用這個函數。驗證功能是從書「PHP和Script.aculo.us的Web 2.0應用程序接口」

myValidation.js

function Validate(){ 
var user=$('uname'); 
var name="uname="+user.value; 
var pars=name; 
new Ajax.Request(
'myValidation.php', 
{ 
method:'post', parameters:pars, asynchronous:true, onComplete: showAvailable 
} 
); 
} 

function showAvailable(originalRequest){ 
var newData=originalRequest.responseText; 
$('result').innerHTML=newData; 
} 

這個例子是從書中提到

+0

你的'myValidation.js'文件是什麼樣的? – 2010-09-12 14:46:49

回答

0

你檢查這些文件訪問來自HTML代碼?還有更多 - 是否將腳本放置在頁面的底部 - 因爲AJAX將它的處理程序綁定到現有元素上?

+0

1

你還沒有告訴我們您的myValidation.js文件,但這裏是典型的原因,我看到,當人們從內聯script塊移動到外部文件和東西停止工作:

  1. 他們把script塊的外部JavaScript文件。你可能沒有那樣做,但我經常看到它足以提及它。你的外部腳本是純JavaScript,所以例如它應該是:

    function Validate() { 
        // ... 
    } 
    

    不是:

    <script type='text/javascript'> 
    function Validate() { 
        // ... 
    } 
    </script> 
    

    我見過後者公平一點。

  2. 他們將JavaScript文件放在與腳本標記src不匹配的位置。

  3. 他們在腳本中留下了開頭<!--或關閉-->。重要的是不要這樣做,在外部JavaScript文件中這些是語法錯誤。

  4. 他們正在使用區分大小寫的Web服務器,並且src屬性和文件的實際名稱不匹配。

  5. 他們正在使用對服務器權限敏感的Web服務器,並且該文件沒有正確的權限。

對於上述最後兩個例子,很容易檢查:只需打開一個新標籤並實際輸入JavaScript文件的URL。如果你看到JavaScript,那麼很棒;如果沒有,你可能有更多的信息。

對於這樣的問題(和其他數百人),沒有什麼比擁有體面的工具集。爲了在瀏覽器上調試JavaScript,有很多。 Firebug(Firefox附加組件),Chrome和Safari的開發工具(內置於瀏覽器中),Microsoft Visual Studio或腳本調試器,用於IE等調試。Firebug和Dev Tools都會告訴你關於鏈接的破壞情況,以及src鏈接因爲任何例外情況等。

0

問題已解決。

在/ js /文件夾我有一個PHP文件,我只是因爲簡單而放在那裏。將它移到其他位置後,所有工作。不知道這是否規則,堅果沒有PHP文件在/ js /文件夾。謝謝T.J和Tomasz