用Ajax实现注册与头像上传功能

这次给大家带来用Ajax实现注册与头像上传功能,Ajax实现注册与头像上传功能的注意事项有哪些,下面就是实战案例,一起来看一下。

在初次接触ajax后,我们做了一个crm训练的项目,大多数小组都有注册用户这一项,但是都忽略掉了一个功能,那就是,很多网站的注册是可以上传头像的,在这里我做了一个在已有的头像数组里选择图片上传作头像的小型crm(当然,可以从本地照片上传并裁剪的那种我还没做出来,不过只要有时间我就会研究的,相信时间也不会太久的)。

1.先写出一个注册页面以及css样式我命名为regist.html,css文件名为regist.css,在这里我省略掉具体代码,上图看效果吧:(页面有点丑,别介意)

用Ajax实现注册与头像上传功能

还有一个用于显示添加后记录的information.html页面,此时只有表头:

用Ajax实现注册与头像上传功能

2.写出创建连接池模块(dbutil.js),也即是建立链接的js文件,我在这里建的是users_infor表,使用的数据库是test。

var mysql = require('mysql');var pool = mysql.createPool({host : 'localhost',user : 'root',password : 'lovo',database:"test",port:3306});exports.pool=pool;

登录后复制

3.写出模块用来连接数据库,处理(增删改查)用户数据(Userdao.js),里面把操作数据库的函数一律命名为getAllUser:

var db = require("../DBUtil/dbutil.js");//var conn = db.conn;var mypool =db.pool;function getAllUser(sql,arg,fun){mypool.getConnection(function(err,conn){conn.query(sql,arg,fun);conn.end();})}exports.getAllUser=getAllUser;

登录后复制

4.写出操作数据库的模块,也即是对数据表的增,删,改,查(Userservice.js):

var dao = require("../dao/UserDao.js");

登录后复制

定义注册函数,即往数据表user_infor添加新纪录的函数

exports.regist = function(req,res){var arg;if (req.method == "get" || req.method == "GET") {arg = [req.query.username, req.query.pwd, req.query.pics];} else {arg = [req.body.username, req.body.pwd, req.body.pics];}var sql = "insert into user_infor(u_name,u_pwd,u_pics) values(?,?,?)"dao.getAllUser(sql, arg, function (err, result) {if (err) {console.log(err);} else {if (result.affectedRows>0){res.sendfile("./static/html/information.html")} else {res.sendfile("./static/html/regist.html")}}})}

登录后复制

定义显示information.html页面所有记录的函数,即查询user_infor表所有内容的函数

exports.listAll=function(req,res){var sql = " select * from user_infor ";dao.getAllUser(sql,function (err, result, fields) {if (err){console.log(err);} else {if (result.length>0){res.json(result);console.log(result)} else {res.send("failed");}}})}

登录后复制

5.当然,不要忘了引入2个模块express和mysql,新建一个文件夹node_module,将这2个模块包含在其中。

6.然后,就是写一个主要的js文件了(main.js),也即是跟用户交互的js:

var http = require("http");var express = require("express");var userser = require("./route/UserService.js");var url= require("url");var app = express();app.use(express.cookieParser());app.use(express.session({secret:"123456",name:"userLogin",cookie:{maxAge:9999999}}))app.set("port",8888);app.use(express.static(dirname+"/static"));app.use(express.methodOverride());app.use(express.bodyParser());app.post("/regist",userser.regist);app.post("/list",userser.listAll);http.createServer(app).listen(app.get("port"),function(){console.log("服务启动成功!监听"+app.get("port")+"端口");})

登录后复制

7.下面的js文件时针对于regist和information的,分别如下:

——————————–regist页面选择头像的函数————————————————————

function xuanze() {var pics=document.getElementById("pics");var picsp = document.getElementById("login_pics");picsp.style.display = 'block';var img=document.getElementsByTagName("img");var picarrs=["../img/user1.jpg","../img/user2.jpg","../img/user3.jpg","../img/user4.jpg","../img/user5.jpg","../img/user6.jpg","../img/user7.jpg","../img/user8.jpg","../img/user9.jpg","../img/user10.jpg","../img/user11.jpg","../img/user12.jpg","../img/user13.jpg","../img/user14.jpg","../img/user15.jpg","../img/user16.jpg","../img/user17.jpg","../img/user18.jpg","../img/user19.jpg","../img/user20.jpg","../img/user21.jpg","../img/user22.jpg","../img/user23.jpg","../img/user24.jpg"];for(var i=0;i<picarrs.length;i++){img[i].src=picarrs[i];}for(var j=0;j<img.length;j++){img[j].onclick=function(e){var target= e.target|| e.srcElement;var imgroute=target.src;//此处若弹出imgroute,可以看到完全路径是http:localhost:8888/img/users20.jpgpics.value=".."+imgroute.substr(21);/*此处要截取后面的部分才是图片的路径,前面的http:localhost:8888要省去,不是我们需要的路径,若不截取将无法识别*/}}}

登录后复制

———————–information页面显示所有记录的函数,window一加载即全部显示————————————————

window.onload=function(){var xmlhttpReq;if (window.XMLHttpRequest)xmlhttpReq=new XMLHttpRequest();elsexmlhttpReq=new ActiveXObject("Microsoft.XMLHTTP");var url="http://localhost:8888/list";//初始化信息xmlhttpReq.open("post",url,true);//添加请求头xmlhttpReq.setRequestHeader("Content-type","application/x-www-form-urlencoded");xmlhttpReq.send(null);xmlhttpReq.onreadystatechange = function(){if (xmlhttpReq.readyState==4 && xmlhttpReq.status==200) {if (xmlhttpReq.responseText != "failed"){var userinfor = document.getElementById("userinfor");var users = eval("(" + xmlhttpReq.responseText + ")");for (var i = 0; i < users.length; i++){var newRow = userinfor.insertRow();newRow.style.height = "100px";newRow.style.backgroundColor = "skyblue";newRow.insertCell(newRow.cells.length).innerHTML =users[i].u_name;newRow.insertCell(newRow.cells.length).innerHTML =users[i].u_pwd;newRow.insertCell(newRow.cells.length).innerHTML ="用Ajax实现注册与头像上传功能";//此处要在这个单元格里插入img元素,将提交传过来的路径指定为此img的

登录后复制

src,若没有这个img元素,则此处显示的仍然是路径,将没有图片出现。

newRow.insertCell(newRow.cells.length).innerHTML ="";}} else if (xmlhttpReq.responseText == "failed") {alert("添加新用户失败");}}}}

登录后复制

8.还有最重要的一点,在数据库中新建user_infor表时,指定user_pics这个字段要指定图片存的路径:

USE test;DROP TABLE IF EXISTS user_infor;CREATE TABLE user_infor(u_id INT PRIMARY KEY AUTO_INCREMENT,u_name CHAR(20) NOT NULL,u_pwd CHAR(20) NOT NULL,u_pics CHAR(100) NOT NULL)INSERT INTO user_infor(u_name,u_pwd,u_pics) VALUES('xiaoming','111111','../img/user12.jpg'),('xiaofang','222222','../img/user13.jpg'),('xiaozhou','333333','../img/user14.jpg')

登录后复制

整个工程的文件存放关系如下:

用Ajax实现注册与头像上传功能

用SQLyog打开数据库,运行main.js后,在浏览器里打开regist.html,开始注册并选择头像:

用Ajax实现注册与头像上传功能

用Ajax实现注册与头像上传功能

在某个头像上点击后并返回,头像的text文本框里就生成了图片的路径,如下:

用Ajax实现注册与头像上传功能

点击提交,就完成了注册,页面跳转到information页面,几次注册成功后页面就显示成下面这样子:

用Ajax实现注册与头像上传功能

相信看了本文案例你已经掌握了方法,更多精彩请关注【创想鸟】其它相关文章!

推荐阅读:

Ajax与$.ajax的使用方法

使用ajax实现分页技术的步奏详解(附代码)

以上就是用Ajax实现注册与头像上传功能的详细内容,更多请关注【创想鸟】其它相关文章!

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

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2776146.html

(0)
上一篇 2025年3月8日 14:44:34
下一篇 2025年2月27日 18:08:43

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • Ajax下拉列表添加数据

    这次给大家带来Ajax下拉列表添加数据,Ajax下拉列表添加数据的注意事项有哪些,下面就是实战案例,一起来看一下。  1. 前台jsp,新建一个下拉控件 登录后复制 2. js部分,建一个function方法,利用ajax,指向 &#821…

    编程技术 2025年3月8日
    200
  • ajax怎样实现bootstrap模态框分页查询功能

    这次给大家带来ajax怎样实现bootstrap模态框分页查询功能,ajax实现bootstrap模态框分页查询功能的bootstrap有哪些,下面就是实战案例,一起来看一下。 一 、效果图 二、JS function getManager…

    2025年3月8日
    200
  • 新手必学的Ajax总结

    这次给大家带来新手必学的Ajax总结,新手必学Ajax总结有哪些,下面就是实战案例,一起来看一下。 一、Ajax简介、优劣势、应用场景以及技术 Ajax简介 : Asynchronous Javascript And XML (异步的Jav…

    2025年3月8日 编程技术
    200
  • ajax怎样申请手机号到数据库验证并且返回数据的状态值

    这次给大家带来ajax怎样申请手机号到数据库验证并且返回数据的状态值,ajax申请手机号到数据库验证并且返回数据状态值的注意事项有哪些,下面就是实战案例,一起来看一下。 本文实例为大家分享了ajax提交手机号去数据库的具体代码,并返回状态值…

    编程技术 2025年3月8日
    200
  • 处理ajax跨域请求parsererror错误

    这次给大家带来处理ajax跨域请求parsererror错误,处理ajax跨域请求parsererror错误的注意事项有哪些,下面就是实战案例,一起来看一下。 ajax请求报parsererror错误是很宽泛的概念,很多情况下都报这个错, …

    编程技术 2025年3月8日
    200
  • AJAX实现不刷新登录

    这次给大家带来AJAX实现不刷新登录,AJAX实现不刷新登录的注意事项有哪些,下面就是实战案例,一起来看一下。 最近学习了如何实现无刷新登录,大体的效果如下(界面比较丑,请自行忽略….): 点击登录按钮时弹出登录窗口,输入正确的…

    2025年3月8日
    200
  • ajax传递json时为什么会出现乱码

    这次给大家带来ajax传递json时为什么会出现乱码,解决ajax传递json时出现乱码的注意事项有哪些,下面就是实战案例,一起来看一下。 我使用的Springmvc,在controller层传输一个json到前台,后台显示没问题,中文正常…

    编程技术 2025年3月8日
    200
  • 基于Ajax技术来实现无刷新用户登录(附代码)

    这次给大家带来基于Ajax技术来实现无刷新用户登录(附代码),基于Ajax技术来实现无刷新用户登录的注意事项有哪些,下面就是实战案例,一起来看一下。 代码如下: // JScript 文件function usersLogon(){ var…

    编程技术 2025年3月8日
    200
  • 异步的文件或图片上传ajax

    这次给大家带来异步的文件或图片上传ajax,异步文件或图片上传ajax的注意事项有哪些,下面就是实战案例,一起来看一下。 众所周知现在的各大网站基本都设有文件上传功能,用户可以把自己喜欢的图片或其他文件放在网上存起来,以便以后用的时候方便去…

    编程技术 2025年3月8日
    200
  • AJAX的Get请求在微信返回上一页中无效

    这次给大家带来AJAX的Get请求在微信返回上一页中无效,解决AJAX的Get请求在微信返回上一页中无效的注意事项有哪些,下面就是实战案例,一起来看一下。 先给大家分析问题产生原因       最近在做一个微信的项目时,遇到一种很常见的情况…

    编程技术 2025年3月8日
    200

发表回复

登录后才能评论