2015-12-12 40 views
0

我正在將一些數據保存在localstorage變量中,並且希望將這些數據寫入使用PHP創建的文件中。php寫不寫第一次

在我的html頁面中我有一個叫做updatesurvey的函數。

此功能執行以下操作:

var newdate = new Date(); 
    var q1age = localStorage.getItem('age'); 
    var q2gender1 = localStorage.getItem('gender1'); 
    var q2gender2 = localStorage.getItem('gender2'); 

        function updatesurvey(){ 

         $.ajax({ 
          url: "save2file.php", 
          type: "post", 
          data: "&date="+newdate+"&Q1="+q1age+"&Q2_1="+q2gender1+"&Q2_2="+q2gender2+, 
          success: function(){ 
           // alert("Thank you"); 
          }, 
          error:function(){ 
           // alert("Sorry"); 
          } 
          }); 
        };  

在save2file.php我想再次寫POST數據到一個文件:

<?php 
$writedate = $_POST["date"]; 
$writeQ1 = $_POST["Q1"]; 
$writeQ2_1 = $_POST["Q2_1"]; 
$writeQ2_2 = $_POST["Q2_2"]; 

$fp = fopen('surveydata.csv', 'a'); 

$data = "$writedate;$writeQ1;$writeQ2_1;$writeQ2_2".PHP_EOL; 


fwrite($fp, $data); 
fclose($fp); 

?> 

當我檢查我的surveydata.csv文件我總是有一個正確的日期。 其他POST數據的值爲NULL。 但是,當我回到html頁面並再次調用action update(不輸入新數據)時,它會寫入數據correclty。

所以我surveydata.csv看起來第一次是這樣的:

星期六2015年12月12日7點32分12秒格林尼治標準時間0100(中歐標準時間); 空,空,空

了第二遍:

週六二零一五年十二月十二日7時35分四十八秒GMT 0100(中歐標準時間); A2;男; null

任何想法是什麼問題? 爲什麼它只是在第一次寫入日期變量,而其他變量不是?

+0

你確定這是PHP端的問題,而不是你的JavaScript代碼?在將它們傳遞給'$ .ajax'之前,嘗試提醒或記錄這些值。 – Timekiller

回答

0

我找到了解決方案。 這只是我的錯誤。

我提出

var newdate = new Date(); 
var q1age = localStorage.getItem('age'); 
var q2gender1 = localStorage.getItem('gender1'); 
var q2gender2 = localStorage.getItem('gender2'); 

後:

   function updatesurvey(){ 

現在,這一切工作正常。