2016-02-10 47 views
-1

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

下面是ajax.html页面这是一个输入文本与按钮通过AJAX张贴数据

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

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

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

这是update.php文件

<?php 

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

我昨晚一直在查看这些代码,并且无法确定它为什么不将数据写入文本文件。 我已经运行php脚本编辑$ _POST并放入一个变量,它确实写入文本文件。所以PHP应该工作,文本文件的权限是正确的。我期望这是我做错了的ajax。 任何帮助将是巨大的

+0

HTTPS

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

现在://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest#Submitting_forms_and_uploading_files'offm'包含一个字符串值,而不是一个paramstring,因此它不发送post-params以你期望的方式。 –

+0

对不起,不了解你指向这一点。感谢您的链接,我将不得不阅读此 – user2669997

回答

1

您需要发送offM作为urlencoded是这样的:当你点击提交你打电话update.php?offM=YourText和PHP收到VAR $_POST['offM']与价值YourText

+0

谢谢,我可以看到你在说什么,它的工作原理。我用附加的变量发送数据。我用GET完成了这一点,并可以看到为什么变量需要在那里,但不知道如何。干杯 – user2669997