9lessons programming blog
Loading Search
Wednesday, April 28, 2010

Facebook Like Profile Edit with Jquery

This post is very special Facebook like profile edit with jquery, ajax and PHP. Why special before I was thinking this is little difficult but I had developed in just 5 minutes using jquery and php. Use this and enrich your web applications.


Download Script     Live Demo

Database Design
user table contains user_id, username, password and profile.
CREATE TABLE  `users` (
`user_id` INT NOT NULL primary key AUTO_INCREMENT ,
`username` VARCHAR(45) NULL unique,
`password` VARCHAR(45) NULL ,
`profile` TEXT,
);



updateprofile.php
Contains javascript, HTML and PHP code. Take a look at bold blue color class names.
<script type="text/javascript" src="http://ajax.googleapis.com/
ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function()
{

//Edit link action
$('.edit_link').click(function()
{
$('.text_wrapper').hide();
var data=$('.text_wrapper').html();
$('.edit').show();
$('.editbox').html(data);
$('.editbox').focus();
});

//Mouseup textarea false
$(".editbox").mouseup(function()
{
return false
});

//Textarea content editing
$(".editbox").change(function()
{
$('.edit').hide();
var boxval = $(".editbox").val();
var dataString = 'data='+ boxval;
$.ajax({
type: "POST",
url: "update_profile_ajax.php",
data: dataString,
cache: false,
success: function(html)
{
$('.text_wrapper').html(boxval);
$('.text_wrapper').show();
}
});
});

//Textarea without editing.
$(document).mouseup(function()
{
$('.edit').hide();
$('.text_wrapper').show();
});

});
</script>

//body part
<div class="mainbox">
<a href="#" class="edit_link" title="Edit">Edit</a>
// Displaying profile data from the users table
<?php
include("db.php");
$user_id=$session_id; 
$sql=mysql_query("select profile from users where user_id='$user_id'");
$row=mysql_fetch_array($sql);
$profile=$row['profile'];
?>
<div class="text_wrapper"><?php echo $profile; ?></div>
<div class="edit" style="display:none">
<textarea class="editbox" cols="23" rows="3" ></textarea>
</div>
</div>

update_profile_ajax.php
Contains PHP code updating profile field at users table.
<?php
include("db.php");
if($_POST['data'])
{
$data=$_POST['data'];
$data = mysql_escape_String($data);
$user_id=$session_id;
$sql = "update users set profile='$data' where user_id='$user_id'";
mysql_query( $sql);
}
?>

db.php
Database configuration file.
<?php
$mysql_hostname = "localhost";
$mysql_user = "username";
$mysql_password = "password";
$mysql_database = "database";
$bd = mysql_connect($mysql_hostname, $mysql_user, $mysql_password)
or die("Opps some thing went wrong");
mysql_select_db($mysql_database, $bd) or die("Opps some thing went wrong");
?>

CSS code
body
{
font-family:Arial, Helvetica, sans-serif;
font-size:12px;
}
.mainbox
{
width:250px;
margin:50px;
}
.text_wrapper
{
border:solid 1px #0099CC;
padding:5px;
width:187px;
}
.edit_link
{
float:right
}
.editbox
{
overflow: hidden;
height: 61px;
border:solid 1px #0099CC;
width:190px;
font-size:12px;
font-family:Arial, Helvetica, sans-serif;
padding:5px
}
Sponsored Links

Share this post

Comments
{ 25 comments }
Anonymous said...

If I want to Show all row in Data base and put Edit after each one to modify, how can do it ?

Buzzknow said...

great .... simple and working!

thanks

Hoxxy said...

Perfect timing!

This is just what I'm looking for! :)

Anonymous said...

Hi, its possible to edit with a select box and not only text?

Anonymous said...

beautifull thank u

Nala said...

Awesome! Great stuff, thanks for this!

Anonymous said...

This is good... if you just want to edit text. I want one where custom functions can be passed like BBCODE(). :-P

Jeremy Benaim said...

Hi, there's a little issue that I don't manage to fix.
When you have a carriage return, it's OK in the database but I doesn't display it when reloading the div with the new html content.
I tried to fix it with nl2br, but then
tags appear in the textarea ! :/
Got an idea ?

Thanks from France ! ;)

SC &amp; Aleksite said...

cool! thanks for sharing!

Anonymous said...

I really like your application and I have subscribed for your service but a bit of explanation can save a lot of time for us.

Anonymous said...

you should post a version with multiple update columns.

Jorge Pablo said...

as is done not to return to the same thing that you store ????????????????????????????????????

Anonymous said...

Hi I got the same problem when I reload page everything come back to white and no text in there;(

Anonymous said...

I need to update more columns at a time.. Can u give me the solution ? How to add more text boxes update at a same time ??

tolga said...

i need repair pls

Anonymous said...

Hey Srinivas another great tut! I have got a question though. How can I update multiple textareas? I've been racking my brain on this one for like a week. So I figure I would ask you or if anyone else out there knows please share the knowledge.

Anonymous said...

ummm can you make a login and registration script to go with this? It's very pointless to just have the edit profile script.

Tommy said...

Thanks for that ... works well

frankie said...

good script....but why wont update sql page insert $_SESSION[USER_ID] in table query only works if type user_id manually

and why on the update profile page you insert a session_id into sql table but then on the update page you select from where user_id='1'......
NOW why select from where user_id=1 when the session_id will be completly different

Anonymous said...

great script but will not run in IE7 unfortunately.

Anonymous said...

this "sample" will appear \"sample\"
why? what's the problem with " sign? why automatically added \
pls reply, it's me bongkie

Anonymous said...

Thank you !

Anonymous said...

cheers DooD
helped heaps

Anonymous said...

How can I update multiple textareas? I've been racking my brain on this one for like a week. So I figure I would ask you or if anyone else out there knows please share the knowledge.
please send update at taran_117@yahoo.co.in

Anonymous said...

hi, i have problmes with à,è,ì.
it doesn't disply correctly this words....why?

Post a Comment

Subscribe now!Recent Posts

Categories

Subscribe now!Popular Posts

People Says

@9lessons thank you for the great tutorials, we truly appreciate your contributions to the design community.

Smashing Magazine

Like Me

follow me
products

9lessons labs

9lessons clouds

Android application

Chrome Extension