我正在编写一个代码,该代码将从textarea中获取数据并在单击按钮时通过ajax提交。
下一步,PHP将在服务器上创建一个文件并将ajax数据存储到文件中。
我已经尝试过PHP的addlashes函数,但是那不起作用。
我尝试通过上述方法进行操作,并成功提交了文本数据。但是问题在于HTML数据。我认为这一定是一个解析问题。
HTML代码
<textarea id="textareaCode"></textarea>
<a href="javascript:void(0);" id="savebutton" onclick="makePage()"></a>
使用Ajax的Javascript代码
<script>
function makePage(){
var comment = document.getElementById('textareaCode').value;
alert (comment);
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function(){
if(xmlhttp.readyState==4 && xmlhttp.status==200)
alert("webpage " + xmlhttp.responseText + " was successfully created!");
}
var content = comment;
xmlhttp.open("GET","makePage.php?content=" + content,true);
xmlhttp.send();
}
</script>
最后是PHP代码
<?php
$content = $_GET["content"];
$file = uniqid() . ".html";
file_put_contents("userdata/$file", $content);
echo $file;
?>
我没有收到任何错误消息
答案 0 :(得分:1)
您应该使用POST而不是GET进行操作,就像Teemu所说的那样:
xmlhttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
此行设置了正确的标题。
<textarea id="textareaCode"></textarea>
<a href="javascript:void(0);" id="savebutton" onclick="makePage()">test</a>
<script>
function makePage(){
var comment = document.getElementById('textareaCode').value;
alert (comment);
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function(){
if(xmlhttp.readyState==4 && xmlhttp.status==200)
alert("webpage " + xmlhttp.responseText + " was successfully created!");
}
var content = JSON.stringify({ comment: comment });
xmlhttp.open("POST","makePage.php",true);
xmlhttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
xmlhttp.send(content);
}
</script>
PHP:
<?php
$data = json_decode(file_get_contents('php://input'), true);
$content = $data['comment'];
$file = uniqid() . ".html";
file_put_contents("userdata/$file", $content);
echo $file;
?>
答案 1 :(得分:0)
帖子将以这种方式工作
function makePage(){
var data = document.getElementById('textareaCode').value;
$.post("makePage.php", {content: data}, function(result){
//Do something with the result
});
};
然后是php
$content = $_POST['content'] or $_REQUEST['content']