我有一个textarea和一个保存按钮..我想捕获textarea中的数据并将其写入文件但是遇到问题..在编写ajax的代码时出现问题。注意我没有使用表单
<textarea id="display" name="display" style="overflow:auto;resize:none" rows="35" cols="40"><?php echo $data;?></textarea>
<input type="button" name="Save" value="Save" onclick="save_data()"/>
This is the Ajax i wrote...
function save_data(){
var ajaxadd;
ajaxadd=new XMLHttpRequest();
var url = "save.php";
ajaxadd.open("GET",url,true);
ajaxadd.onreadystatechange = function(){
if(ajaxadd.readyState==4){
document.getElementById('display').value = ajaxadd.responseText;
}
}
ajaxadd.send(null);
alert("Item successfully ADDED!");
}
This is the save.php
<?php
if(!empty($_POST['data'])){
$data = $_POST['data'];
$fname ="XHTML_file.xhtml";
$file = fopen($fname, 'w');//creates new file
fwrite($file, $data);
fclose($file);
}
?>
答案 0 :(得分:0)
您正在发出GET请求:
ajaxadd.open("GET",url,true);
但是你期待一个POST请求:
if(!empty($_POST['data'])){
并且您没有发送任何数据:
ajaxadd.send(null);
答案 1 :(得分:0)
首先,您正在执行get请求,并且您正在服务器上测试变量。第二:您从未将文本区域中的数据添加到请求中。您必须手动执行此操作,因为您没有提交表单
答案 2 :(得分:0)
您正在使用get方法而不发送任何数据。 使用post,并发送数据:
function save_data(){
var ajaxadd;
ajaxadd=new XMLHttpRequest();
var url = "save.php";
ajaxadd.open("POST",url,true);
ajaxadd.onreadystatechange = function(){
if(ajaxadd.readyState==4){
document.getElementById('display').value = ajaxadd.responseText;
}
}
var textArea = document.getElementById('display');
var formData = new FormData();
formData.append("data", textArea.value);
ajaxadd.send(formData);
}