原生javascript的ajax请求及后台PHP响应操作示例


Posted in Javascript onFebruary 24, 2020

本文实例讲述了原生javascript的ajax请求及后台PHP响应操作。分享给大家供大家参考,具体如下:

<!doctype html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
</head>
<body>
  <table id="t">
    <tr>
      <td>学号:</td>
      <td><input type="text" id="stuid" /></td>
    </tr>
    <tr>
      <td>密码:</td>
      <td><input type="password" id="stupass" /></td>
    </tr>
    <tr>
      <td colspan="2">
        <input id="btnLogin" type="button" value="登录" />
      </td>
    </tr>
  </table>
</body>
</html>

ajax的一般步骤

1、创建对象

let xhr = new XMLHttpRequest();

2、设置请求参数

xhr.open(请求方式,请求地址,是否异步);

3、设置回调函数

xhr.onreadystatechange = function () {
    // 5、接收响应
  alert(xhr.responseText);
}

4、发送

xhr.send();
<script type="text/javascript">
window.onload = function(){
  $("#btnLogin").onclick = function(){
    //1、创建对象
    let xhr = new XMLHttpRequest();
    //2、设置请求参数
    xhr.open('post','loginCheckajax.php',true);
    //3、设置回调函数
    xhr.onreadystatechange = function(){
      if(xhr.readyState==4 && xhr.status==200){
        if(xhr.responseText=='1'){
          //存cookie
          saveCookie("username",$("#stuid").value,7);
          //挑到首页
          location.href="index.html" rel="external nofollow" ;
        }else{
          alert("登录失败!");
        }
      }
    }
    xhr.setRequestHeader('Content-type','application/x-www-form-urlencoded');
    //4、发送
    xhr.send("stuid="+$("#stuid").value+"&stupass="+$("#stupass").value);
  }
}
function $(str){  //id class tagname
  if(str.charAt(0) == "#"){
    return document.getElementById(str.substring(1));
  }else if(str.charAt(0) == "."){
    return document.getElementsByClassName(str.substring(1));
  }else{
    return document.getElementsByTagName(str);
  }
}
</script>

php文件

<?php
  header("Content-type:text/html;charset=utf-8");
  //一、获取用户的输入
  $stuid = $_POST['stuid'];
  $stupass = $_POST['stupass'];
  //二、处理
  //1、建立连接(搭桥)
  $conn = mysql_connect('localhost','root','root');
  if(!$conn){
    die("连接失败");
  }
  //2、选择数据库(选择目的地)
  mysql_select_db("mydb1809",$conn);
  //3、执行SQL语句(传输数据)
  $sqlstr="select * from student where stuid='$stuid' and stupass='$stupass'";
  $result = mysql_query($sqlstr,$conn);//结果是个表格
  //4、关闭数据库(过河拆桥)
  mysql_close($conn);
  //三、响应
  if(mysql_num_rows($result)>0){
    echo "1";
  }else{
    echo "0";
  }
?>
<!-- 保存cookie -->
<script>
  // saveCookie
//保存cookie
//参数:
//键
//值
//有效期(单位是:天)
//返回值:无
function saveCookie(key,value,dayCount){
  var d = new Date();
  d.setDate(d.getDate()+dayCount);
  document.cookie = key+'='+escape(value)+';expires='+d.toGMTString();
}
//获取cookie(根据键获取值)
//参数:
//键
//返回值:值
function getCookie(key){
  var str = unescape(document.cookie);//username=jzm; userpass=1236667
  //1、分割成数组(; )
  var arr = str.split('; ');//['username=jzm','userpass=1236667']
  //2、从数组查找key=;
  for(var i in arr){
    if(arr[i].indexOf(key+'=')==0){
      return arr[i].split('=')[1];
    }
  }
  return null;
}
//删除cookie
//参数:
//键
//返回值:无
function removeCookie(key){
  saveCookie(key,'',-1);
}
</script>

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
js实现点击注册按钮开始读秒倒计时的小例子
May 11 Javascript
下拉列表select 由左边框移动到右边示例
Dec 04 Javascript
kindeditor修复会替换script内容的问题
Apr 03 Javascript
JSP防止网页刷新重复提交数据的几种方法
Nov 19 Javascript
Bootstrap Scrollspy源码学习
Mar 02 Javascript
AngularJS的Filter的示例详解
Mar 07 Javascript
Bootstrap 模态框多次显示后台提交多次BUG的解决方法
Dec 26 Javascript
vue拖拽组件 vuedraggable API options实现盒子之间相互拖拽排序
Jul 08 Javascript
JavaScript数组排序小程序实现解析
Jan 13 Javascript
elementui实现预览图片组件二次封装
Dec 29 Javascript
解决await在forEach中不起作用的问题
Feb 25 Javascript
Vue.Draggable实现交换位置
Apr 07 Vue.js
在 Vue 中编写 SVG 图标组件的方法
Feb 24 #Javascript
原生javascript中this几种常见用法总结
Feb 24 #Javascript
js实现坦克大战游戏
Feb 24 #Javascript
Vue中点击active并第一个默认选中功能的实现
Feb 24 #Javascript
如何在JavaScript中创建具有多个空格的字符串?
Feb 23 #Javascript
浅谈TypeScript的类型保护机制
Feb 23 #Javascript
原生javascript制作的拼图游戏实现方法详解
Feb 23 #Javascript
You might like
PHP实现MySQL更新记录的代码
2008/06/07 PHP
利用PHP生成静态HTML文档的原理
2012/10/29 PHP
php数组声明、遍历、数组全局变量使用小结
2013/06/05 PHP
php之XML转数组函数的详解
2013/06/07 PHP
单台服务器的PHP进程之间实现共享内存的方法
2014/06/13 PHP
PHP数组的定义、初始化和数组元素的显示实现代码
2016/11/05 PHP
php使用crypt()函数进行加密
2017/06/08 PHP
php实现大文件断点续传下载实例代码
2019/10/01 PHP
一些mootools的学习资源
2010/02/07 Javascript
jQuery源码分析之Event事件分析
2010/06/07 Javascript
SinaEditor使用方法详解
2013/12/28 Javascript
jQuery插件ajaxFileUpload实现异步上传文件效果
2015/04/14 Javascript
javascript中substring()、substr()、slice()的区别
2015/08/30 Javascript
基于jQuery Circlr插件实现产品图片360度旋转
2015/09/20 Javascript
JavaScript实现两个select下拉框选项左移右移
2017/03/09 Javascript
微信小程序实现点击按钮修改文字大小功能【附demo源码下载】
2017/12/06 Javascript
微信小程序使用image组件显示图片的方法【附源码下载】
2017/12/08 Javascript
vue element动态渲染、移除表单并添加验证的实现
2019/01/16 Javascript
jQuery 函数实例分析【函数声明、函数表达式、匿名函数等】
2020/05/19 jQuery
javascript实现页面的实时时钟显示示例
2020/08/06 Javascript
jQuery插件实现图片轮播效果
2020/10/19 jQuery
[01:03:54]Liquid vs IG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
一步步解析Python斗牛游戏的概率
2016/02/12 Python
浅析python中SQLAlchemy排序的一个坑
2017/02/24 Python
python解析含有重复key的json方法
2019/01/22 Python
django框架F&amp;Q 聚合与分组操作示例
2019/12/12 Python
Python openpyxl模块原理及用法解析
2020/01/19 Python
详解pandas获取Dataframe元素值的几种方法
2020/06/14 Python
python 获取计算机的网卡信息
2021/02/18 Python
Mountain Warehouse德国官网:英国户外零售商
2019/08/11 全球购物
物理学专业求职信
2014/07/04 职场文书
励志演讲稿大全
2014/08/21 职场文书
小学生美德少年事迹材料
2014/08/24 职场文书
奥巴马当选演讲稿
2014/09/10 职场文书
百善孝为先:关于孝道的经典语录
2019/10/18 职场文书
新手,如何业余时间安排好写作、提高写作能力?
2019/10/21 职场文书