【php增删改查实例】- 第二十九节 用户头像变更

现在考虑的问题就是如何把头像上传的地方给圈出来,我们可以在这个DIV

下面新建一个DIV:

因为div是块级元素,所以会被上面的div挤下来,所以,我们可以给两个div都加上一个左浮动:

得到的效果,就是两个DIV在一起了。

于是,上传头像的区域就被划出来了,接下来,我们要在这个区域嵌套一层iframe,指向原来的头像上传页面。

最终我们要引入的就是这个index.html

<div class='header_con'>

    <iframe frameborder=0 scrolling='auto'  src="imageUpload/index.html" style='width:100%;height:100%'></iframe>

</div>

当图片上传成功的时候,就会调用父页面的saveImgToDb方法:

并且把上传图片的详细地址作为参数传递到了父页面。

那么,在父页面(user.php)中,就必须写一个saveImgToDb的方法:

修改后:

function saveImgToDb(header){

    var obj = {};
    obj.header = header; //用户头像地址

    $.post("user/saveImgToDb.php" , obj , function(data){

        if(data.errCode < 0){
            alert(data.errMsg);
            return;
        }


    },"json");

}

并且把上传图片的详细地址作为参数传递到了父页面。

那么,在父页面(user.php)中,就必须写一个saveImgToDb的方法:

修改后:

function saveImgToDb(header){

   var obj = {};
   obj.header = header; //用户头像地址

   $.post("user/saveImgToDb.php" , obj , function(data){

       if(data.errCode < 0){
           alert(data.errMsg);
           return;
       }


   },"json");

}

因为在个人详情页无法像之前的用户管理页面那样获取到userid,那么,我们需要去修改saveImgToDb.php 这个文件。思路:如果发现有id传过来,就用id去查询。如果没有,那说明是个人详情页提交的上传头像请求,我们就去session中获取username,用username来查询那个需要修改头像的用户数据。 saveImgToDb.php:

<?php
    

    $resultData = array();
    $resultData["errCode"] = 0;
    $resultData["errMsg"] = "";
    
    //连接MySQL数据库
    $conn = mysql_connect("localhost","root","");
    $db = mysql_select_db("test",$conn);
    mysql_query("set names utf8");

    if(isset($_POST["id"]) && $_POST["id"] != null){
        $id = $_POST["id"];
        $header = $_POST["header"];

        $sql = "update tm_users set header = '$header' where id = $id;";
        
    }else{
        session_start();
        $username = $_SESSION["username"];
        $header = $_POST["header"];

        $sql = "update tm_users set header = '$header' where username = '$username';";
    }

    

    mysql_query($sql) or die(err());

    echo json_encode($resultData);
    
    function err(){
        $resultData["errCode"] = -1;
        $resultData["errMsg"] = mysql_error();
        echo json_encode($resultData);
        return;
    }


?>

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏偏前端工程师的驿站

Java魔法堂:找外援的利器——Runtime.exec详解

一、前言                                  Java虽然五脏俱全但总有软肋,譬如获取CPU等硬件信息,当然我们可以通过JNI调用...

19910
来自专栏Java大联盟

Java面试手册:线程专题 ①

992
来自专栏我是攻城师

给Java字节码加上”翅膀“的JIT编译器

上面文章在介绍Java的内存模型的时候,提到过由于编译器的优化会导致重排序的问题,其中一个比较重要的点地方就是关于JIT编译器的功能。JIT的英文单词是Just...

1105
来自专栏前端萌媛的成长之路

JavaScript模块化发展

2693
来自专栏十月梦想

不同函数间的数据传递

        小程序不想mvc的框架一样,获取dom进行操作,只是依靠数据绑定,数据有限原则进行数据传输.

692
来自专栏有趣的Python

Python文件处理 - 专题笔记文件简介文件基础操作文件属性及OS模块使用文件练习

任何语言都离不开对文件的操作,Python语言是如何来操作和管理文件的。掌握文件的基本概念、基本操作,了解文件属性、 linux 系统的文件管理机制及os模块对...

3636
来自专栏python学习路

八、线程和进程 什么是线程(thread)?什么是进程(process)? 线程和进程的区别?Python GIL(Global Interpreter Lock)全局解释器锁

什么是线程(thread)? 线程是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一...

4207
来自专栏风中追风

java类的加载过程和类加载器的分析

我们知道,我们写的java代码保存的格式是 .java, java文件被编译后会转换为字节码,字节码可以在任何平台通过java虚拟机来运行,这也是java能够跨...

5378
来自专栏python学习之旅

Python笔记(四):异常处理机制与 open()

(一)  异常处理机制概述 就像日常生活中会遇到各种意外情况一样(例如:你可能考虑过如果中了500w该怎么做),代码运行过程中也会遇到这种意外情况,python...

3183
来自专栏Python爬虫与算法进阶

Python函数超时,用装饰器解决

我们在自定义一个函数后,会调用这个函数来完成我们想要的功能。 就拿爬虫来举例,你发送请求,服务器给你响应,但是有可能服务器没有给你任何数据,无论是他识别了爬虫、...

1942

扫码关注云+社区