2013-05-30 48 views
1

我最近開始使用Cloud9 IDE使用javascript/php進行編碼。使用PHP將JavaScript數組保存到服務器

我知道這可能是這裏的一些問題的重複,但我還沒有找到適合我的解決方案。

我有定製的陣列的javascript對象我想保存到服務器上的文件(以後被檢索重新填充頁面上的數據):

<script> 
    var questionList = []; 

    function saveToFile() { 
    var x =JSON.stringify(questionList); 
    $.post("saveQuestion.php", {data : x}, function(){alert("File saved successfully")}); 
    } 
</script> 

//in the body of the html 
    <button id="saveToFileButton" type="button" onclick='saveToFile()'>Save to file</button> 

PHP文件'saveQuestion.php'是在同一目錄中,並如下:

<?php 
$data = $_POST['data']; 
file_put_contents("savetest.txt", $data); 
?> 

然而,儘管我盡了最大努力,'savetest.txt'保持爲空。

我知道'x'正在被分配正確的值,因爲我可以打印出一個HTML元素。

編輯:php腳本有權寫入文件,但據我所知,它從來沒有被調用過。這將是一個可能的原因/解決方案?

有人可以提供一個簡單的解釋,強調我做錯了什麼和可能的方法來解決它?

謝謝!

+1

看起來好像沒什麼問題,檢查在php什麼$數據包含下一行之前跑了。 –

+1

你的PHP文件(試圖保存到savetest.txt是否有寫入權限?) –

+1

檢查你是否有權寫入文件,代碼看起來很好,這意味着PHP腳本可能不允許寫入文件,創建一個帶有隨機名稱的文件,並確保它可以寫入到目錄中。 –

回答

1

也許你應該在questionsList數組指定的一些值:

<script> 

    // Check if your assigning a value to this array 
    var questionList = ['value 1', 'value 2', 'etc..']; 

    function saveToFile() { 
    var x =JSON.stringify(questionList); 
    $.post("saveQuestion.php", {data : x}, function(){alert("File saved successfully")}); 
} 
</script> 
+0

questionList在程序的其他地方被賦值,我通過調用: 'alert(x);'''來驗證它不是'null'; – ms813

相關問題