【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 条评论
登录 后参与评论

相关文章

来自专栏大内老A

The .NET of Tomorrow

Ed Charbeneau(http://developer.telerik.com/featured/the-net-of-tomorrow/) Exciti...

31710
来自专栏闻道于事

js登录滑动验证,不滑动无法登陆

js的判断这里是根据滑块的位置进行判断,应该是用一个flag判断 <%@ page language="java" contentType="text/html...

6828
来自专栏转载gongluck的CSDN博客

cocos2dx 打灰机

#include "GamePlane.h" #include "PlaneSprite.h" #include "BulletNode.h" #include...

5476
来自专栏魂祭心

原 canvas绘制clock

4084
来自专栏一个会写诗的程序员的博客

Spring Reactor 项目核心库Reactor Core

Non-Blocking Reactive Streams Foundation for the JVM both implementing a Reactiv...

2152
来自专栏pangguoming

Spring Boot集成JasperReports生成PDF文档

由于工作需要,要实现后端根据模板动态填充数据生成PDF文档,通过技术选型,使用Ireport5.6来设计模板,结合JasperReports5.6工具库来调用渲...

1.2K7
来自专栏张善友的专栏

Miguel de Icaza 细说 Mix 07大会上的Silverlight和DLR

Mono之父Miguel de Icaza 详细报道微软Mix 07大会上的Silverlight和DLR ,上面还谈到了Mono and Silverligh...

2717
来自专栏C#

DotNet加密方式解析--非对称加密

    新年新气象,也希望新年可以挣大钱。不管今年年底会不会跟去年一样,满怀抱负却又壮志未酬。(不过没事,我已为各位卜上一卦,卦象显示各位都能挣钱...)...

4878
来自专栏Golang语言社区

【Golang语言社区】GO1.9 map并发安全测试

var m sync.Map //全局 func maintest() { // 第一个 YongHuomap := make(map[st...

4708
来自专栏落花落雨不落叶

canvas画简单电路图

62011

扫码关注云+社区