我正在学习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。 任何帮助都会很棒
答案 0 :(得分:2)
您需要将offM
发送为urlencoded
,如下所示:
var offM = 'offM='+document.getElementById("setOffMin").value;
现在,当您点击提交时,请致电update.php?offM=YourText
,PHP接收var $_POST['offM']
,其值为YourText