I want to fetch all user's name in a page from mysql and once clicked on a name their email id should be displayed in real time.
the new.php and email.php are given below:
<html>
<head>
</head>
<body>
<?php
$con=mysqli_connect('localhost','root','','test');
$sql="select * from users";
$res=mysqli_query($con,$sql);
while($row=mysqli_fetch_array($res)){
?>
<a href="email.php?id=<?php echo $row['id']; ?>"> <?php echo $row['name'] ?>
</a><br />
<?php
}
?>
</body>
</html>
<html>
<head>
</head>
<body>
<?php
$con=mysqli_connect('localhost','root','','test');
$id=$_GET['id'];
$sql="select * from users where id= '$id'";
$res=mysqli_query($con,$sql);
while($row=mysqli_fetch_array($res)){
echo $row['email'];
}
?>
</body>
</html>
Something like this ( -note- I didn't test this at all, but this is the basic idea )
page.php
<html>
<head>
<script type="text/javascript">
function getLinks(){
//use ajax to get the links
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("link_wrapper").innerHTML = this.responseText;
}
};
xhttp.open("GET", "get_user_email.php", true);
xhttp.send();
}
setInterval( function(){
//call getLinks every 5000 milliseconds
getLinks();
},5000);
//call getLinks on page load
window.onload = getLinks;
</script>
</head>
<body>
<div id="link_wrapper"></div>
</body>
</html>
get_user_email.php
<?php
$con=mysqli_connect('localhost','root','','test');
$sql="select * from users";
$res=mysqli_query($con,$sql);
$html = '';
while($row=mysqli_fetch_array($res)){
$html .= '<a href="email.php?id='.$row['id'].'">'.$row['name'].'</a><br />';
}
echo $html;
For reference:
setInterval - https://www.w3schools.com/jsref/met_win_setinterval.asp