2013-01-05 118 views
0

我是AJAX的新手。我想通過JavaScript在文件中寫入單選按鈕的值,根據我的搜索,這是不可能的。爲此,我發送一個AJAX請求到一個php函數。以下是我的AJAX請求。AJAX請求不正確

$.ajax({ 
    url: "/modules/orffinder/write_file", 
    type: "POST", 
    data: "id=radios[i].value", 
    success: function(msg){ 
    alert(msg); 
    window.opener.runNextModule (msg); 
} 
}); 

我的PHP函數

function write_file() 
{ 
    $id = $_POST['id']; 
    echo "The id is ".$id; 
    $myFile = "/var/www/Bioinfo12/testFile.txt"; 
    $fh = fopen($myFile, 'w') or die("can't open file"); 
    fwrite($fh, $id); 
    fclose($fh); 
} 

但這段代碼的問題是,它不運行在所有的,可能是它的語法錯誤。如何擺脫這個問題?

+0

如果存在語法錯誤,那麼它將在瀏覽器的錯誤控制檯(如果它是JS錯誤)或服務器的錯誤日誌(如果它是PHP錯誤)中報告。他們說什麼? – Quentin

+0

@Quentin在瀏覽器或服務器上沒有顯示錯誤。 –

+0

然後它不是一個語法錯誤(或者你沒有在正確的地方找)。您的瀏覽器的網絡標籤說什麼?您希望創建HTTP請求嗎?它是否得到你期望得到的迴應?如果您手動提出請求,會發生什麼情況? – Quentin

回答

2

不能在JS使用VAR在 「」,你shoule這樣做:

data: "id="+radios[i].value 

你可以看到在瀏覽器CONSLE您的錯誤,在Chrome例如F12。

有幾個原因:

1.the url is not right "module/xxxx" is diffrent from "/module/xxxx" 

2.the php script occur error. 

所以,你可以從瀏覽器中得到信息來源,看到的是404,或者PHP返回錯誤信息

哦...在PHP中:

echo "The id is ".id; 

shoule是:

echo "the id is ". $id 
+3

你不應該把一個字符串傳給'data',它最好用一個對象('data:{id:radios [i] .value}') - 但是這可以(當前)問題。問題說「它根本不運行」,而不是說給定的值是錯誤的。 – Quentin

+0

控制檯中沒有顯示錯誤。數據:「id =」+ radios [i] .value對結果也沒有影響。 –

+0

@ayankhan在php中,不是id,應該是$ id – tinybai

0

PHP文件的URL是否正確?應該有一個PHP擴展。 「modules/orffinder.php」

Javascript無法直接調用PHP函數。當頁面被訪問時,應該自動調用write_file函數。

+0

有許多方法可以讓PHP處理URI,而不在URI中包含字符'.php'。 – Quentin

+0

write_file是orffinder.php的一個函數,我應該把它寫成modules/orffinder.php/write_file嗎? –

+0

@ayan您不需要引用PHP函數來調用(Javascript無法在服務器上執行任何操作):Asynch Javascript只是返回頁面的輸出。如果有的話,write_file應該在請求頁面時自動執行。 –