2012-05-04 27 views
0

我想在用戶單擊我的網頁上的按鈕時編輯我的服務器上的文件。我使用php生成一個按鈕表。 STRING1,STRING2和BOOL是我傳遞給我函數的變量。我製作的editPlist()函數被調用,測試alert()會顯示出來。問題是php文件要運行。我也沒有得到任何錯誤。我似乎無法弄清楚什麼是錯的。使用AJAX運行PHP文件併發送參數

樣本HTML按鈕:

<a href="#" onclick="editPlist('STRING1', 'STRING2', 'BOOL')" class="buttong">1 : Round 1</a> 

按鈕點擊運行此腳本:(在URL行的PHP產生我想運行的文件的地址)

<script type='text/javascript'> 
function editPlist(stage, dance, oldValue) 
{ 
    alert('test ' + stage + dance + oldValue); 
    $.ajax({ 
     type: "POST", 
     url: <?php echo '"'.dirname(curPageURL()).'/PlistEditorFunction.php"' ?>, 
     data: {"var1" : stage , "var2" : dance , "var3" : oldValue}, 
     success: function(msg){ 
      alert("Data Saved: " + msg); //Anything you want 
     } 
    }); 
} 

在外部php文件PlistEditorFunction.php中,我嘗試記錄假錯誤並加載變量,但錯誤從未顯示。這是php文件的開頭:

$msg = 'test error message'; 
error_log('['.date("F j, Y, g:i a e O").']'.$msg."<br /> \n", 3, $phperrorPath); 
if (isset($_POST['data']) and trim($_POST['data']) != '') { 
    $stage = trim($_POST['var1']); 
    $dance = trim($_POST['var2']) 
    $oldValue = trim($_POST['var3']); 
} 

我知道,如果域名匹配了AJAX是從運行文件中的PHP腳本將只運行。這兩個文件彼此相鄰,所以我知道這不是問題。

我能做些什麼來解決這個問題?

+2

您是否正在使用Chrome開發人員工具或Firebug觀看您的ajax請求?您可以驗證您的ajax請求是否正確發送並以這種方式查看完整響應。使用chrome打開開發人員工具並轉到網絡窗格。然後點擊您的網頁上的按鈕並觀察網絡窗格中的新條目。 – mwotton

+0

謝謝,腳本現在正常工作和更新! –

回答

0

mwotton的評論後迴應PARAM,我想通了,AJAX是不確定的。 jQuery被導入,所以不會出現問題。我發現答案是我必須將$ .ajax更改爲jquery.ajax。

有些主機不使用「$」來表示jQuery。我的虛擬主機使用「jquery」代替。

1

改變這一行

url: <?php echo '"'.dirname(curPageURL()).'/PlistEditorFunction.php"' ?> 

url: 'PlistEditorFunction.php' 

,看看它是否工作

0

幾件事情看起來很奇怪。

請確認您調用的網址實際上是您認爲的網址。爲了做到這一點,請使用控制檯/檢查員。我推薦螢火蟲。當你進行ajax調用時,它會用ajax顯示你請求的頁面的url。

如果它是正確的,那麼你的網址參數不是問題。接下來我會看看php文件本身。嘗試在PHP文件中拋出一個echo語句,以便您的ajax響應可以驗證其正在運行。不管你的文件PlistEditorFunction.php回波將是成功的功能

success: function(response) { 
    console.log(response); //should be the echo'd statement of PlistEditorFunction.php 
}