php ajax异步提交表单,Ajax 异步请求表单提交+2018年4月11日16时20分

这篇博客介绍了如何利用JQuery的$.Ajax方法进行异步表单提交,以验证用户名是否已被占用。通过设置请求URL、类型、数据格式和回调函数,前端向PHP后端发送JSON数据,后端使用in_array函数检查用户名是否存在于预设数组中,并返回JSON响应。前端根据响应状态动态添加提示信息,提供友好的用户体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用JQuery 的 $.Ajax 异步请求表单提交

Ajax 参数及步骤

// 1.请求资源

url:'admin/reg.php',

// 2.请求类型

type:'POST',

// 3.返回的数据格式

dataType:'JSON',

// 4.异步还是同步

async:true,

// 5.发送的数据,这里使用JSON格式

data:{

'username':$("#username").val()

},

// 6.回调方法

success:function(msg,status,xhr){}

PHP 代码部分:<?php

@header("Content-Type: text/html;charset=utf-8");

// 用数组模拟数据库数据

$nameList = ['admin','abc','php'];

// 获取注册页发送过来的用户名

$userName = $_POST['username'];

// 使用 in_array 判断数组中是否存在当前值

if(in_array($userName,$nameList)){

$status=0;

$reg_msg='用户名太抢手了,换一个';

// 将返回的数据转为json

echo json_encode([

'status'=>$status,

'reg_msg'=>$reg_msg

]);

}else {

$status=0;

$reg_msg='ok'; //此返回的状态可自定义, 如:1 成功 2 失败 3 已经被注册 等等

// 将返回的数据转为json

echo json_encode([

'status'=>$status,

'reg_msg'=>$reg_msg

]);

}

?>

JS 代码部分:主要使用JSON数据格式提交,将返回结果以动态添加标签插入元素之后进行提示,$(document).ready(function(){

$("#username").blur(function(){

// 开始验证账号

if($("#username").val().length>0){

// 账号不为空才能继续下面的邮箱,密码等

// 如果输入是沌数字则不允许

if(isNaN($("#username").val())){

// 使用 JQuery 中的 $.Ajax() 进行验证

$.ajax({

// 1.请求资源

url:'admin/reg.php',

// 2.请求类型

type:'POST',

// 3.返回的数据格式

dataType:'JSON',

// 4.异步还是同步

async:true,

// 5.发送的数据,这里使用JSON格式

data:{

'username':$("#username").val()

},

// 6.回调方法

success:function(msg,status,xhr){

// console.log(msg['tips'])

var msgbox = msg['reg_msg']  //得到服务器返回的 JSON 数据对像中的成功值

//判断返回的状态码 ok = 成功

if(msgbox=='ok'){

$('恭喜,用户名可用').appendTo($('#username').parent().before())

setTimeout(function(){

$(this).parent($('span').empty())

},2000)

}

}

})

}else{

//判断是否为纯数字

$(this).parent($('span').remove())

$('账号不能为纯数字!').appendTo($(this).parent().before())

$("#username").focus()

//2秒后提示清空

}

}else{

//如果输入的内容为空,则动态添加提示符

$('#msgs').remove()

$('账号不能为空!').appendTo($(this).parent().before())

$("#username").focus()

//2秒后提示清空

setTimeout(function(){

$('span').eq(0).empty()

},2000)

}

});

})

CSS 代码部分:.container{

width: 500px;

margin: auto;

border: 1px solid #ccc;

border-radius: 20px;

text-align: center;

margin-top: 20px;

}

HTML 代码部分:

实例

html>

用户注册

账号:

邮箱:

密码:

注册

运行实例 »

点击 "运行实例" 按钮查看在线实例

手抄:

300d2bd5e3adee8330b415058c153638.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值