我的項目是從用戶處獲取輸入並使用ajax和php將其寫入JSON格式文本文件的末尾。問題在於php只會將時間和日期寫入文件的末尾,而沒有其他內容。我從之前的帖子中拿出了這個例子,並將其修改爲我的目的。這裏的HTML movie.html:嘗試使用Ajax和PHP將JSON數據寫入到txt文件
<html lang="en">
<head>
<meta charset="utf-8"/>
<script src="movie.js" type="text/javascript"></script>
</head>
<body>
<h1>
<center>
<input id="box" type="textbox"name="box" value="Enter Movie:"/>
<input id="add" type="button" value="Submit" onClick="addStuff();" /></center>
</h1>
<div id="status" ></div>
<h2>MOVIE NAME:</h2>
<ul id="list" name="list">
</ul>
<div id="status"></div>
</body>
</html>
這裏的其中通過Ajax發送數據的movie.js文件:
function addStuff(){
var movie_name_entered = document.getElementById("box").value;
var movieList = document.getElementById("list");
var hr= new XMLHttpRequest();
var url= "movie.php";
hr.open("POST",url,true);
hr.setRequestHeader("Context-type","application/x-www-form-urlencoded");
var param = "film=" + movie_name_entered;
hr.setRequestHeader("Content-length", param.length);
hr.setRequestHeader("Connection", "close");
hr.onreadystatechange= function(){
if(hr.readyState==4 && hr.status==200){
var return_data=hr.responseText;
console.log(hr.responseText);
document.getElementById("status").innerHTML=return_data;
}
}
hr.send(param);
document.getElementById("status").innerHTML = "processing...";
}
這裏的PHP(順便說一句,我console.logged數據被髮送到PHP的,這是正確的):
<?php
if($_POST){
$data = $_POST["film"];
$file ='movie.txt';
$fp = fopen($file, "a");
$encoded = json_encode($data);
fwrite($fp, $encoded);
fclose($fp);
return $encoded;}
?>
如上所述,代碼只有更不管我做什麼,寫的時間和日期的文本文件,並沒有什麼。我測試了正在發送的數據以及它的有效$ _POST數據。我不知道要如何繼續。任何helop將不勝感激。謝謝!
是的,我確定。該文本文件被稱爲movie.txt並在php文件中被引用。它與其他3個文件位於同一目錄中,並且是唯一被php更新的文件。我認爲時間/日期戳可能表明交換髮生的時間而不是實際數據。 – Khthulhu 2014-12-04 20:58:37
好吧,事實證明,每當我測試應用程序時,我的桌面上都會打開文本文件,我用Ctl + f5來刷新它。該操作將日期/時間粘貼到空的(似乎是)文本文件中。我嘗試了下面列出的代碼,並做了相同的結果。然後我嘗試下面的代碼並關閉文本文件並重新打開它,然後瞧,它工作。 – Khthulhu 2014-12-05 02:05:18