利用ajax技术实现数据get方式与post方式的实时传输与接收实验

利用ajax技术实现数据get方式与post方式的实时传输与接收实验

1.通过ajax在html中利用get方式进行提交数据,将数据存储到message.txt

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<textarea name="" id="ta" cols="30" rows="10"></textarea>  <!--留言输入框-->
<input type="button" value="提交" id="btn">  <!--提交按钮-->
<?php
@$message = $_REQUEST["message"];
$f = fopen("message.txt","a");
$r = fwrite($f,$message);
$data = ["data"=>"chenggong"];
$data1 = ["data"=>"shibai"];
if($r == false){
    echo json_encode($data);
}
?>
    <script>
        var obtn = document.getElementById("btn");
        var ota = document.getElementById("ta");
        obtn.onclick = function () {       //添加点击事件
            var xhr = null;
            //兼容ie
            if (window.XMLHttpRequest) {   //window.XMLHttpRequest表示该类存在
              var xhr = new XMLHttpRequest();
            } else {
                xhr = new ActiveXObject('Microsoft.XMLHTTP');
            }
            var message = ota.value;  // 在提交过程中没提交换行符
            message = encodeURI(message);  //为了保证换行符能够提交   需要对数据进行url编码
            xhr.open("get", "ajax.php?message="+message, true);  //构造请求
            xhr.send();  //发送请求
            xhr.onreadystatechange = function () {
                if (xhr.readyState == 4) {
                    if (xhr.status == 200) {
                        var data = JSON.parse(xhr.responseText);
                        ota.value = "";
                        alert(data["data"]);                    }
                }
            }
        }
    </script>
</body>
</html>

2.通过ajax在html中利用post方式进行提交数据,将数据存储到message.txt

html文件源码

<!--//2.通过ajax在html中利用post方式进行提交数据,将数据存储到message.txt-->

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<textarea name="" id="ta" cols="30" rows="10"></textarea>  <!--留言输入框-->
<input type="button" value="提交" id="btn">  <!--提交按钮-->
<script>
    var obtn = document.getElementById("btn");
    var ota = document.getElementById("ta");
    obtn.onclick = function () {       //添加点击事件
        var xhr = null;
        //兼容ie
        if (window.XMLHttpRequest) {   //window.XMLHttpRequest表示该类存在
            var xhr = new XMLHttpRequest();
        } else {
            xhr = new ActiveXObject('Microsoft.XMLHTTP');
        }
        // 通过post 进行提交数据
        xhr.open("post","ajax.php",true);
        // 需要提交的数据
        var message = ota.value;
        // 按照需要的提交格式进行拼接
        var data = "message="+message;
        xhr.setRequestHeader('content-type','application/x-www-form-urlencoded');
        xhr.send(data);
        xhr.onreadystatechange=function () {
            if (xhr.readyState == 4) {
                if (xhr.status == 200) {
                    // 问题   当点击完之后没有交互   不友好
                    // 需要提示
                    var data = JSON.parse(xhr.responseText);
                    // 清空 输入框
                    ota.value = "";
                    alert(data["data"]);}
                }
            }
        }
</script>
</body>
</html>

php文件源码
$message = $_REQUEST["message"];
$f = fopen("message.txt","a");
$r = fwrite($f,$message);
$data = ["data"=>"chenggong"];
$data1 = ["data"=>"shibai"];
if($r == false){
    echo json_encode($data1);
}else{
    echo json_encode($data);
}
效果展示

在这里插入图片描述
在这里插入图片描述

3.通过ajax在html中显示message. txt中的内容

html文件源码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<ul>
    <li id="li"></li>
    <input type="button" value="请求数据" id="btn">
</ul>
    <script>
        var obtn=document.getElementById("btn");
        obtn.onclick = function () {
            var xhr = null;
            //兼容ie
            if (window.XMLHttpRequest) {  //window.XMLHttpRequest表示该类存在
                xhr = new XMLHttpRequest();
            } else {
                xhr = new ActiveXObject('Microsoft.XMLHTTP');
            }
            xhr.open("get", "ajax.php", true);  //构造请求
            xhr.send();  //发送请求
            xhr.onreadystatechange = function () {
                if (xhr.readyState == 4) {
                    if (xhr.status == 200) {
                        odiv = document.getElementById("li");
                        var arr = JSON.parse( xhr.responseText);  // 将json字符串转换成数组
                        // 将数组中的三个元素循环放到div中
                        odiv.innerHTML = "";   //在下次点击之前返回空值,从而不重复获取
                        for (var i =0;i<arr.length;i++){
                            odiv.innerHTML += arr[i]+"<br>";  //字符串拼接并换行
                        }
                    }
                }
            }
        }
    </script>
</body>
</html>
php文件源码
$file=fopen("message.txt","r");
$arr=array();
while (feof($file)==false){
    $arr[]=trim(fgets($file));
}
echo json_encode($arr);
效果展示

在这里插入图片描述

发布了26 篇原创文章 · 获赞 64 · 访问量 2393

猜你喜欢

转载自blog.csdn.net/weixin_45728976/article/details/103606698
今日推荐