使用ajax写入文件?

时间:2014-04-14 11:28:55

标签: javascript php ajax

我有一个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);
    }
?>

3 个答案:

答案 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);
}