ajax没有发布到文本文件

时间:2016-02-10 18:54:15

标签: php ajax

我正在学习ajax,我已经按照教程通过php脚本将一些数据发布到文本文件中,但我无法让它工作。有没有我错过的东西。

以下是ajax.html页面,它是一个输入文本,带有一个通过ajax发布数据的按钮

<form name="testform">
		Off Min:<input name="setOffMin" type="text" id="setOffMin" maxlength="2" size="1"/></br>
		
		<button type="button" onclick="postStuff();">Submit</button>
</form>

<div id="status"></div>

<script type="text/javascript">
	function postStuff(){
		var hr = new XMLHttpRequest();
		var url = "update.php";
		var offM = document.getElementById("setOffMin").value;
		hr.open("POST", url, true);
		hr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		hr.onreadystatechange = function(){
			if (hr.readyState == 4 && hr.status == 200){
				var return_data = hr.responseText;
				document.getElementById("status").innerHTML = return_data;
			}
		}
		hr.send(offM);
		document.getElementById("status").innerHTML = "processing...";
		
	}
</script>

这是update.php文件

 <?php

         $setOffMin = $_POST["offM"];
         $f = fopen("test.txt", "w");
         fwrite($f, $setOffMin);
         fclose($f);
 ?>

我昨晚一直在查看这段代码,无法解决为什么不将数据写入文本文件。 我运行了PHP脚本编辑$ _POST并输入一个变量,它确实写入文本文件。所以php应该工作,文本文件权限是正确的。我希望这是我做错了的ajax。 任何帮助都会很棒

1 个答案:

答案 0 :(得分:2)

您需要将offM发送为urlencoded,如下所示:

var offM = 'offM='+document.getElementById("setOffMin").value;

现在,当您点击提交时,请致电update.php?offM=YourText,PHP接收var $_POST['offM'],其值为YourText