php中Ajax的简单使用,登录表单调用Ajax判断是否正确登录利用layer.msg进行提示

简介: 本文介绍了在PHP中如何使用Ajax进行登录表单的数据提交,并利用jQuery的$.post()方法与后端通信,以及使用layer.msg进行前端提示。

php中Ajax的简单使用

jQuery中如何使用Ajax?

jQuery 中封装了两个方法 get() 和 post() 方法用于通过 HTTP GET 或 POST 请求从服务器请求数据。

两种在客户端和服务器端进行请求-响应的常用方法是:GET 和 POST。

  • GET - 从指定的资源请求数据
  • POST - 向指定的资源提交要处理的数据

GET 基本上用于从服务器获得(取回)数据。注释:GET 方法可能返回缓存数据。

POST 也可用于从服务器获取数据。不过,POST 方法不会缓存数据,并且常用于连同请求一起发送数据。


1. get

$.get() 方法通过 HTTP GET 请求从服务器上请求数据。

语法格式

$.get(URL,callback);
或
$.get( URL [, data ] [, callback ] [, dataType ] )
  • URL:发送请求的 URL字符串。
  • data:可选的,发送给服务器的字符串或 key/value 键值对。
  • callback:可选的,请求成功后执行的回调函数。
  • dataType:可选的,从服务器返回的数据类型。(可以是xml, json, script, 或 html)。

$.get() 使用例子:

 <button id="btn1">get</button>
$("#btn1").click(function (){
   
    // get 格式 $.get(url,callback) $.get(url连接,回调函数)
    $.get("请求url",function (data,status){
   
        alert(data+"状态:"+status);
    })
});

2. post

$.post() 方法通过 HTTP POST 请求向服务器提交数据

语法格式:

$.post(URL,callback);
或
$.post( URL [, data ] [, callback ] [, dataType ] )
  • URL:发送请求的 URL字符串。
  • data:可选的,发送给服务器的字符串或 key/value 键值对。
  • callback:可选的,请求成功后执行的回调函数。
  • dataType:可选的,从服务器返回的数据类型。(可以是xml, json, script, 或 html)。

$.post() 常使用的方式:

 <!--  利用ajax 完成 表单数据的上传  -->
<form>
    <input type="text" id="uname" name="uname"><br>
    <input type="password" id="upwd" name="upwd"><br>
    <input type="button" value="提交" id="btn2">
</form>
$("#btn2").click(function (){
   
    $.post("请求url",{
   
        // 封装表单需要的字段及数据
        "uname":$("#uname").val(),// uname="xxx"
        "upwd":$("#upwd").val()// upwd="xxx"
    },function (data,status) {
   
        if(status=="success"){
   
            alert('请求成功);
        }else{
   
            alert('请求失败);
        }
    })
})

举例:登录结合ajax的使用

为了方便,我们直接使用layui框架,快速完成前端页面的构建

前端部分(login.html)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
  <!-- 引入 layui.css -->
  <link href="//unpkg.com/layui@2.8.0/dist/css/layui.css" rel="stylesheet">
  <!-- 引入 layui.js -->
  <script src="//unpkg.com/layui@2.8.0/dist/layui.js"></script>
  <!--jquery cdn-->
  <script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"> </script>
</head>
<body>
<style>
  .demo-login-container{
    width: 320px; margin: 21px auto 0;margin-top: 200px;}
  .demo-login-other .layui-icon{
    position: relative; display: inline-block; margin: 0 2px; top: 2px; font-size: 26px;}
</style>
<form class="layui-form">
  <div class="demo-login-container">
    <div class="layui-form-item">
      <div class="layui-input-wrap">
        <div class="layui-input-prefix">
          <i class="layui-icon layui-icon-username"></i>
        </div>
        <input type="text" name="username" value="" lay-verify="required" placeholder="用户名" lay-reqtext="请填写用户名"
               autocomplete="off" class="layui-input" lay-affix="clear" id="uname">
      </div>
    </div>
    <div class="layui-form-item">
      <div class="layui-input-wrap">
        <div class="layui-input-prefix">
          <i class="layui-icon layui-icon-password"></i>
        </div>
        <input type="password" name="password" value="" lay-verify="required" placeholder="密   码" lay-reqtext="请填写密码"
               autocomplete="off" class="layui-input" lay-affix="eye" id="upwd">
      </div>
    </div>
    <div class="layui-form-item">
      <button class="layui-btn layui-btn-fluid"  lay-verify="required" id="login" type="button">登录</button>
    </div>
    <div class="layui-form-item demo-login-other">
      <label>社交账号登录</label>
      <span style="padding: 0 21px 0 6px;">
        <a href="javascript:;"><i class="layui-icon layui-icon-login-qq" style="color: #3492ed;"></i></a>
        <a href="javascript:;"><i class="layui-icon layui-icon-login-wechat" style="color: #4daf29;"></i></a>
        <a href="javascript:;"><i class="layui-icon layui-icon-login-weibo" style="color: #cf1900;"></i></a>
      </span><a href="form.html#reg">注册帐号</a></span>
    </div>
  </div>
</form>
<script>
    // 这里为了方便直接调用ajax来做弹出层
    $("#login").click(function () {
    
      $.post("main_post.php",{
    
        // 设定post表单的数据  username="xxx" password="xxx"
        "username":$("#uname").val(),
        "password":$("#upwd").val()
      },function (data,status) {
    
        if(data=="ok"&&status=="success"){
    
          layer.msg('登录成功', {
    icon: 6});
        }else{
    
          layer.msg('登录失败', {
    icon: 5});
        }
      })
    })
</script>
</body>
</html>

后端部分(main_post.php)

<?php

if($_POST){
   
    // 只要输入名为 张三 密码为123,即认为正确登录(实际上肯定是去查询数据库,这里我就简单演示下)
    $uname = $_POST['username'];
    $upwd = $_POST['password'];
    if($uname=="张三"&&$upwd=="123"){
   
        echo "ok";
    }else{
   
        echo "no";
    }
}

运行测试

1. 测试错误数据

在这里插入图片描述

在这里插入图片描述

2. 测试正确的数据

在这里插入图片描述

在这里插入图片描述


jQuery中调用Ajax真的太方便了,调api就是香!

相关文章
|
2月前
|
JavaScript 前端开发 安全
php学习笔记-普通表单参数提交获取及页面的重定向和一个登录小demo-day05
本文介绍了PHP中普通表单参数的提交获取、页面重定向的方法,并通过一个登录示例演示了表单参数的封装和页面跳转处理。
|
2天前
|
XML 前端开发 JavaScript
34 PHP与Ajax
路老师在知乎上分享了关于PHP语言的知识,帮助大家入门并深入了解PHP。本文重点介绍了Ajax技术,包括其概念、开发模式、优点及常用技术,如JavaScript和XMLHttpRequest对象。Ajax通过异步请求改善了用户体验,减轻了服务器负担,实现了页面无刷新更新。
10 1
|
3月前
|
PHP 数据格式
PHP表单
PHP表单
33 1
|
3月前
|
前端开发 JavaScript Java
SpringBoot+JQuery+Ajax实现表单数据传输和单文件或多文件的上传
关于如何在SpringBoot项目中结合JQuery和Ajax实现表单数据的传输以及单文件或多文件上传的教程。文章提供了完整的前后端示例代码,包括项目的`pom.xml`依赖配置、SpringBoot的启动类`App.java`、静态资源配置`ResourceConfig.java`、配置文件`application.yml`、前端HTML页面(单文件上传和多文件上传加表单内容)以及后端控制器`UserController.java`。文章最后展示了运行结果的截图。
147 0
SpringBoot+JQuery+Ajax实现表单数据传输和单文件或多文件的上传
|
3月前
|
安全 Java 云计算
JSF 应用究竟何去何从?云端部署能否成为其全新突破点?快来一探究竟!
【8月更文挑战第31天】本文介绍了将JavaServer Faces(JSF)应用部署到云平台的过程。首先,根据成本、功能、可靠性和安全性选择合适的云平台。接着,展示了构建简单JSF应用的示例代码。最后,以AWS Elastic Beanstalk为例,详细说明了部署流程。部署至云端可提升应用的可用性、扩展性和安全性。
45 0
|
3月前
|
PHP
【Azure Developer】PHP网站使用AAD授权登录的参考示例
【Azure Developer】PHP网站使用AAD授权登录的参考示例
|
4月前
|
API PHP UED
​一个PHP文件实现联系表单自动发送邮件
使用PHP和AOKSend服务,可以创建一个联系表单,收集用户信息并自动发送邮件。HTML表单包含姓名、邮箱和消息字段。PHP文件`send_mail.php`处理表单提交,通过AOKSend的SMTP设置(如主机、端口、API密钥)使用PHPMailer发送邮件到指定地址。代码中还包括安全措施,如使用`htmlspecialchars`防止XSS攻击。这种方法增强了网站的用户沟通体验,并依赖AOKSend的稳定性和API进行高效邮件发送。
|
SQL 前端开发 PHP
FirePHP——Ajax与php开发帮手
前几天在Firebug扩展开发一文中就提到过Firephp这个基于Firebug的插件,通过使用Firephp你可以在Firebug的Console栏中看到要调试的数据,而不影响php程序的正常执行,所以说,这东西对于Ajax开发是很有帮助的!下面一起来看下Firephp的使用方法。
814 0
|
2月前
|
安全 关系型数据库 MySQL
PHP与MySQL交互:从入门到实践
【9月更文挑战第20天】在数字时代的浪潮中,掌握PHP与MySQL的互动成为了开发动态网站和应用程序的关键。本文将通过简明的语言和实例,引导你理解PHP如何与MySQL数据库进行对话,开启你的编程之旅。我们将从连接数据库开始,逐步深入到执行查询、处理结果,以及应对常见的挑战。无论你是初学者还是希望提升技能的开发者,这篇文章都将为你提供实用的知识和技巧。让我们一起探索PHP与MySQL交互的世界,解锁数据的力量!
|
2月前
|
NoSQL 关系型数据库 MySQL
不是 PHP 不行了,而是 MySQL 数据库扛不住啊
【9月更文挑战第8天】这段内容讨论了MySQL在某些场景下面临的挑战及其原因,并指出这些问题不能完全归咎于MySQL本身。高并发读写压力、数据量增长以及复杂查询和事务处理都可能导致性能瓶颈。然而,应用程序设计不合理、系统架构不佳以及其他数据库选择和优化策略不足也是重要因素。综合考虑这些方面才能有效解决性能问题,而MySQL通过不断改进和优化,仍然是许多应用场景中的可靠选择。
129 9