用原生JS&PHP简单的AJAX实例

功能介绍:

1)file.html 使用 xmlhttp 请求服务器端文件 text ,并更新 file.html 的部分内容

2)update.html 使用 xmlhttp 通过 filewrite.php 更改服务器端文件 text 的内容

3)filewrite.php 接收 update.html 中 xmlhttp 提交的数据更新 text 内容

 

file.html

<!DOCTYPE html>
<html>
    <head>
        <meta charset='utf-8'>
        <title>ajax</title>
        <style>

            body {
                background:whitesmoke;
            }
            * {
                margin: 0 0 0 0;
                padding: 0 0 0 0;
            }
            .header {
                height:100px;
                width:100%;
                text-align: center;
                font-size: 80px;
                color:gray;
            }
            .container {
                text-align: center;
            }

            .ipttag {
                display: inline-block;
                width:100px;
                color: brown;
            }
            
            #responseContent {
                color : rgb(20, 104, 214);
            }
        </style>

        
    </head>

    <body>
        <div class="header">FILE Learning</div>
        <div class="container">
            <form>
                <input type='button' value='获取text内容' id="submit"/>
                
                <p id="responseContent"></p>

            </form>
        </div>
    </body>
    <script> 
            document.getElementById('submit').onclick =  function() {
                //id = document.getElementById('id').value;
                //passwd = document.getElementById('passwd').value;

                var xmlhttp;
                xmlhttp = new XMLHttpRequest();
                xmlhttp.onreadystatechange = function() {
                    if ( xmlhttp.readyState == 4 && xmlhttp.status == 200 )
                    {
                        //alert(xmlhttp.responseText);
                        document.getElementById('responseContent').innerHTML = xmlhttp.responseText;
                    }
                }

                xmlhttp.open("GET", "./text", true);
                xmlhttp.send();
            }

            //document.getElementById('submit').onclick = showHints;
            //document.getElementById('id').onkeyup = showHints;
        </script>
</html>

update.html

<!DOCTYPE html>

<html>
    <head>
        <meta charset='utf-8'>
        <title>UPDATE</title>
        <style>

                body {
                    background:whitesmoke;
                }
                * {
                    margin: 0 0 0 0;
                    padding: 0 0 0 0;
                }
                .header {
                    height:100px;
                    width:100%;
                    text-align: center;
                    font-size: 80px;
                    color:gray;
                }
                .container {
                    text-align: center;
                }
                
                #responseContent {
                    color : rgb(20, 104, 214);
                }

                .text {
                    width : 500px;
                    height: 300px;
                    text-align: left;
                }
            </style>
    
    </head>

    <body>
        <div class='header'>FILE Learing</div>
        <div class='container'>
            <textarea class='text' type="area" id='text'></textarea>
            <br>
            <input type='button' value='更新text内容' id='updateButton'>
            <p id="responseContent"></p>

        </div>
        
    </body>

    <script>
        
        document.getElementById('updateButton').onclick = function ()
        {
            var text = document.getElementById('text').value;
            var postContent = 'text=' + text;

            var xmlhttp = new XMLHttpRequest();
            xmlhttp.onreadystatechange = function () {
                if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
                {
                    //document.getElementById('responseContent').innerHTML = "更新成功";
                    alert('更新成功');
                }
            }

            xmlhttp.open('POST', './filewrite.php', true);
            xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
            xmlhttp.send(postContent);
        }
    </script>
</html>

filewrite.php

<?php
$text = $_POST['text'];
$file = fopen('./text', 'w') or exit('无法打开文件');
fwrite($file, $text);
fclose($file);
?>

 

转载于:https://www.cnblogs.com/liupy/p/9165227.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Ajax (Asynchronous JavaScript and XML) 是一种在不刷新整个页面的情况下,使用 JavaScript 发起异步请求,获取或提交数据的技术。原生 Ajax 是指不依赖任何 JavaScript 框架或库,纯粹使用原生 JavaScript 实现 Ajax。下面是一个使用原生 Ajax 进行提交的实例详解。 首先需要创建一个 XMLHttpRequest 对象: ``` var xmlhttp; if (window.XMLHttpRequest) { // IE7+、Firefox、Chrome、Opera、Safari 浏览器执行代码 xmlhttp = new XMLHttpRequest(); } else { // IE6、IE5 浏览器执行代码 xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } ``` 然后设置请求方式和请求地址: ``` var url = "submit.php"; // 提交的处理程序 var method = "POST"; // 提交的方式,可以是 GET 或 POST xmlhttp.open(method, url, true); // true 表示异步请求 ``` 接着设置请求头: ``` xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); ``` 这里使用了 application/x-www-form-urlencoded 格式。如果需要提交 JSON 格式的数据,则设置为: ``` xmlhttp.setRequestHeader("Content-type", "application/json"); ``` 接下来设置回调函数: ``` xmlhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { // 请求成功,处理返回的数据 console.log(this.responseText); } }; ``` 当 readyState == 4 时,表示请求已完成;status == 200 表示请求成功。这里只是简单地输出了返回的数据,可以根据具体情况进行处理。 最后发送请求,提交数据: ``` var data = "name=John&age=18"; // 提交的数据,可以是表单数据或 JSON 数据 xmlhttp.send(data); ``` 这里提交了两个字段,name 和 age,可以根据实际情况修改。当使用 GET 方式提交时,数据需要拼接到 URL 中,例如: ``` var url = "submit.php?name=John&age=18"; xmlhttp.open("GET", url, true); xmlhttp.send(); ``` 以上就是使用原生 Ajax 进行提交的实例详解。需要注意的是,原生 Ajax 还需要处理一些兼容性和安全性问题,例如 IE6、7 下不能并发多个 Ajax 请求,跨域请求需要使用 JSONP 或设置 CORS 等。因此,如果条件允许,建议使用现代的 JavaScript 框架或库来简化 Ajax 的操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值