2017-01-15 46 views
-1

我寫了一個簡單的JS腳本,即保存在一個數組鼠標位置,然後我通過AJAX發送到PHP函數Php。它的工作原理,並保存收到的數據,但問題是它是如何保存的,也就是說我希望有X和Y位置的正常輸出是:[X1,Y1],[X2,Y2],[X3 ,y3],...JavaScript數組通過AJAX

但我得到的是這樣的: a:63:{i:0; a:2:{i:0; i:527; i:1; i:1010 ;} I:1; A:2:{I:0; I:490; I:1; I:1205;} I:2; A:2:{I:0; I:588; I:1;我:1311;} I:3;:2:{I:0; I:615; I:1; I:1368;} I:4;一個:2:{I:0; I:553; I:1 ; I:1474;}我:5; ...

我想如果我JSON格式,因爲我認爲這將保存編碼,但我不明白爲什麼輸出是因爲它是。有任何想法嗎?

的JS代碼如下:

window.onbeforeunload = function() { 
    var jsonString = JSON.stringify(tabela); 
    $.ajax({ 
     type: 'POST', 
     url: 'process.php', 
     data: { 
      text1: jsonString 
     } 
    }); 
} 

而且PHP方面是這樣的:

 
    $text1 = json_decode(stripslashes($_POST['text1'])); 
    $string_data = serialize($text1); 
    file_put_contents("your-file.txt", $string_data); 

+0

你不'stripslashes()函數'一個JSON格式,除非使用'JSON_UNESCAPED_SLASHES'和**編碼從未**連載用戶輸入作爲其安全風險。 – Xorifelse

+0

真,很抱歉,但即使我刪除,它仍然無法正常工作... –

+0

作爲@Rafael說,只是直接存儲到文件:'file_put_contents(「你-file.txt的」,$ _ POST [ 'text1']。PHP_EOL);' – Xorifelse

回答

0

內容看起來是這樣的文件,因爲你通過serialize函數傳遞數組。爲了「解碼」文件內容,請使用unserialize。 如果你想有更多的人類可讀的文件內容,只是再次調用file_put_contents之前存儲在文件中的JSON字符串($_POST['text1']直接)或代替serialize使用json_encode

+0

謝謝你,anwser幫助了我。 –

+0

@TadejBogataj不客氣。很高興我能幫上忙。 – Rafael

+0

@TadejBogataj如果有幫助,有禮貌地點名,你可以在提問後15分鐘內將其標記爲答案。 – Xorifelse