A tooltip is a small pop-up element that shows information when moving the mouse pointer to the element.
You can dynamically update the tooltip content with AJAX if you don’t want to fix the content while creation.
You can add the tooltip to the element with Bootstrap, jQueryUI, or any other library.
I am using the jQuery UI library in the tutorial.
In the demonstration, I am displaying the list of users and dynamically load information on the tooltip with AJAX on mouse hover.
You can define any default value in the
Completed Code
In the
Select the user detail from
Completed Code
To stop the tooltip from freeze I define
If you know some better solution to solving this problem, let me know in the comment section.
If you found this tutorial helpful then don't forget to share.
You can add the tooltip to the element with Bootstrap, jQueryUI, or any other library.
I am using the jQuery UI library in the tutorial.
In the demonstration, I am displaying the list of users and dynamically load information on the tooltip with AJAX on mouse hover.
1. Table structure
I am usingusers
table in the tutorial example.CREATE TABLE `users` ( `id` int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT, `username` varchar(80) NOT NULL, `name` varchar(80) NOT NULL, `gender` varchar(10) NOT NULL, `email` varchar(60) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
2. Configuration
Create aconfig.php
for database connection.
Completed Code
<?php $host = "localhost"; /* Host name */ $user = "root"; /* User */ $password = ""; /* Password */ $dbname = "tutorial"; /* Database name */ $con = mysqli_connect($host, $user, $password,$dbname); // Check connection if (!$con) { die("Connection failed: " . mysqli_connect_error()); }
3. HTML
Create<span>
element with the user’s name in the <div class='content'>
container. In the <span>
specify title
(use to enable tooltip from the library on the element) and id
attribute.You can define any default value in the
title
attribute.Completed Code
<link href='jquery-ui.css' rel='stylesheet' type='text/css'> <script src='jquery-3.2.1.min.js' type='text/javascript'></script> <script src='jquery-ui.js' type='text/javascript'></script> <script src='script.js' type='text/javascript'></script> <div class='container'> <div class='content'> <span title='Please wait..' id='user_1'>Yogesh Singh</span> </div> <div class='content'> <span title='Please wait..' id='user_2'>Sonarika Bhadoria</span> </div> <div class='content'> <span title='Please wait..' id='user_3'>Vishal Sahu</span> </div> <div class='content'> <span title='Please wait..' id='user_4'>Sunil</span> </div> </div>
4. jQuery
Initialize tooltip on the<span>
element by calling tooltip()
method on the selector.In the
tooltip()
method define two options track
and open
.- track – Enable to change the position of tooltip according to the mouse movement when it set to
true
. - open – Get the user id by splitting element id. Send the AJAX request and pass the userid as
data
. On successful callback update thecontent
option with the response.
Sometime while setting tooltip content dynamically it get freez when moving mouse fastly over element. For this I definedCompleted Codemouseout
event on<span>
which reintialize the tooltip.
$(document).ready(function(){ // initialize tooltip $( ".content span" ).tooltip({ track:true, open: function( event, ui ) { var id = this.id; var split_id = id.split('_'); var userid = split_id[1]; $.ajax({ url:'fetch_details.php', type:'post', data:{userid:userid}, success: function(response){ // Setting content option $("#"+id).tooltip('option','content',response); } }); } }); $(".content span").mouseout(function(){ // re-initializing tooltip $(this).attr('title','Please wait...'); $(this).tooltip(); $('.ui-tooltip').hide(); }); });
5. PHP
Create a newfetch_details.php
file.Select the user detail from
users
table using POST userid
and return the data.Completed Code
<?php include "config.php"; $userid = $_POST['userid']; $select_query = "SELECT * FROM users WHERE id=".$userid; $result = mysqli_query($con,$select_query); $html = '<div>'; while($row = mysqli_fetch_array($result)){ $username = $row['username']; $name = $row['name']; $gender = $row['gender']; $email = $row['email']; $html .= "<span class='head'>Name : </span><span>".$name."</span><br/>"; $html .= "<span class='head'>Username : </span><span>".$username."</span><br/>"; $html .= "<span class='head'>Gender : </span><span>".$gender."</span><br/>"; $html .= "<span class='head'>Email : </span><span>".$email."</span><br/>"; } $html .= '</div>'; echo $html;
6. CSS
.container{ margin: 0 auto; width: 30%; } .content{ border: 1px solid black; padding: 5px; margin-bottom: 5px; } .content span{ width: 250px; } .content span:hover{ cursor: pointer; }
8. Conclusion
On tooltip
open
event sends AJAX request to fetch the data and update the tooltip content with the response on successfully callback.To stop the tooltip from freeze I define
mouseout
event from where reinitialize the tooltip.If you know some better solution to solving this problem, let me know in the comment section.
If you found this tutorial helpful then don't forget to share.
0 Comments:
Post a Comment