微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用ajax发送表单信息

1.GET方式

下面这个是一个简单的ajax请求当失去焦点时候发送表单到服务器,然后服务器把发送的get信息输出

网页代码

<!DOCTYPE html>
<html>
    <head>
        <title>get提交</title>
        <Meta charset="UTF-8">
        <Meta name="viewport" content="width=device-width,initial-scale=1.0">
        <script>
            function action(){
                var name = document.getElementById('uname').value;
 //  name=encodeURIComponent(name); //进行特殊字符编码
                var xhr  =new XMLHttpRequest();//创建ajax对象
                xhr.onreadystatechange=function(){//对状态进行监听
                  if(xhr.readyState===4)  
                  {
                    alert(xhr.responseText);//输出服务器返回的信息
                  }
                }; 
                xhr.open("get","./action.PHP?uname="+name);//通过get方式发送信息
                xhr.send();
            }
            
        </script>
    </head>
    <body>
        <p>用户名:<input type="text" id="uname" onblur="action()"/></p>
    </body>
</html>

服务器代码

<?PHP
/**
 *  @功能 处理submit的表单
 */
print_r($_GET);

这样普通情况没有问题但是当表单内容出现特殊字符的时候就会出现偏差,比如输入的用户名信息为:tom&height=179

浏览器返回结果是:

这样就会出现问题链接就会变成"./index.PHP?name=tom&height=179",传递到服务器get信息就变成两个变量了,这个是错误的结果。因此我们需要给表单内容编码。

需要增加一行代码

name=encodeURIComponent(name);//对链接进行编码

链接编码的结果变成了/action.PHP?uname=tom%26height%3D170

----------------------------------------------------------------------------------------------------------------------------------------------

2.POST发送请求

发送HTML代码为:

<!DOCTYPE html>
<html>
    <head>
        <title>post提交</title>
        <Meta charset="UTF-8">
        <Meta name="viewport" content="width=device-width,initial-scale=1.0">
        <script>
            function action(){
                var name = document.getElementById('uname').value;
                name=encodeURIComponent(name);
                var tel=document.getElementById('utel').value;
                var xhr  =new XMLHttpRequest();//创建ajax对象
                xhr.onreadystatechange=function(){//对状态进行监听
                  if(xhr.readyState===4)  
                  {
                    alert(xhr.responseText);//输出服务器返回的信息
                  }
                };   
                xhr.open("post","./action.PHP");//通过get方式发送信息
                xhr.setRequestHeader('Content-type',"application/x-www-form-urlencoded");//发送类型xform
             
                var info = "uname="+name+"&utel="+tel;
                xhr.send(info);
            }
        </script>
    </head>
    <body>
        <!-- 当电话文本框失去焦点是发送ajax的post请求-->
        <p>用户名:<input type="text" id="uname" /></p>
        <p>电话  :<input type="text" id="utel" onblur="action()"/></p>
    </body>
</html>

服务器代码为:

<?PHP
/**
 *  @功能 处理submit的表单
 */
print_r($_POST);

使用firebug查看发送情况

接收情况:

原文地址:https://www.jb51.cc/ajax/161964.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐