Ajax配合上PHP使用 是我目前为止学到的能够进行前后台数据库交互的方法,jQuery虽说不像以前那么香了,但是jQuery还是比JavaScript更加方便,于是乎我想介绍一下Ajax封装在jQuery中的使用方法。
先上代码,再解释代码的含义
let username = $('[name="regname"]').val();
let userpwd1 = $('[name="regpwd"]').val();
let userpwd2 = $('[name="regpwd1"]').val();
$.ajax({
url:'./server/reg.php',
type:'post',
data:{userName:username,userPwd:userpwd1},
dataType:'json',
success: function (res){
if(res == "1"){
window.alert('注册成功');
window.location.href = './login.html';
}else if(res == "0"){
window.alert('注册失败');
window.location.href = './reg.html';
}
}
})
PHP代码
<?php
include_once './config.php';
//获取Ajax传过来的用户名和密码并赋值
$userName = $_POST['userName'];
$userPwd = $_POST['userPwd'];
// 连接我们要连接的数据库
$link = mysqli_connect('127.0.0.1' , 'root' , 'root' , 'wode' , 3306);
// 数据库插入语句把用户名和密码写入到存放用户名和密码的地方
$sql = "INSERT INTO `user`(`username` , `userpwd`) VALUES('{$userName}' , '{$userPwd}')";
// 执行我们写的插入语句
$result = mysqli_query($link, $sql);
// // 写入成功,执行结果是true,写入失败是false
if($result == true){
echo json_encode('1');
}else{
echo json_encode('0');
}
其中$.ajax({})是Ajax封装再jQuery中的语法形式;
我共写了五个参数(正常这五个参数就够了):
url:‘地址’ --------这里写的地址是用于交互的PHP地址;
type:‘传输方式’ --------传输方式一共两种:get和post,查询时用get方法,其余情况基本都用post方法,这样更安全些(保密一些);
data:{需要传给后台的参数} --------userName是键名(PHP要用到的),username是键值(本页面获取到的),因为写在了对象里面,所以可以传多个参数,相传几个传几个,我这里只是注册,所以只传了用户名和密码两个参数。
dataType : ‘json’, -------- 设定为json,会自动解析响应体中的json串(不然返回的数据只有电脑能看懂,我们看不懂);
success:function({})--------请求成功执行的函数,因为我在PHP中写了写入成功时返回‘1’,所以我这里判断如果响应体是‘1’,就说明注册成功,弹出提示框并跳转回到登陆界面,如果失败则回到注册页面重新注册。
php中的含义我都再代码中注释了就不再写一遍了。
当然jQuery中封装的Ajax方法还有一些不常用的参数,我就在最后列举出来吧
async : 设定是否异步,默认值是true,异步执行ajax请求;
error : function(){} 请求错误时执行的函数;
timeout : 设定时间,单位 毫秒,如果请求时间超过设定的时间,认为是请求失败;
cache : 设定是否缓存请求结果,默认值是 true,缓存请求结果;
context : 指定 执行函数中 this的指向;
这就是我目前为止学到的Ajax封装在jQuery中的方法。