我在这个网站上搜索了适合这种情况的答案,但却没有。
这是从所有用户的数据库返回结果的函数:
function management_active() {
include('db.php');
include('connect.php');
$result = mysqli_query($con,"SELECT * FROM $table_name WHERE activ_status='1'");
while($row = mysqli_fetch_array($result)) {
echo '<tr>';
echo '<td>' . $row['id'] . '</td>';
echo '<td>' . $row['username'] . '</td>';
echo '<td>' . $row['email'] . '</td>';
echo '<td>';
echo '<a href="javascript:;" onclick="showAjaxModal();" class="btn btn-primary btn-xs" data-toggle="tooltip" data-placement="top" title="" data-original-title="View Profile"><i class="fa fa-eye"></i></a>';
echo '<a href="javascript:;" onclick="editAjaxModal();" class="btn btn-primary btn-xs" data-toggle="tooltip" data-placement="top" title="" data-original-title="Edit User"><i class="fa fa-cogs"></i></a>';
echo '<a href="javascript:;" onclick="delAjaxModal();" class="btn btn-primary btn-xs" data-toggle="tooltip" data-placement="top" title="" data-original-title="Remove User"><i class="fa fa-trash"></i></a>';
echo '</td>';
echo '</tr>';
global $user_link;
$user_link = $row['activ_key'];
}
}
此功能显示表中活动的所有用户,然后我有一些按钮,允许用户以模态查看用户的配置文件。模态需要通过AJAX加载用户的数据。
这是页面底部的JQUERY脚本:
<script type="text/javascript">
function showAjaxModal()
{
jQuery('#show-modal').modal('show', {backdrop: 'static'});
setTimeout(function()
{
jQuery.ajax({
url: "data/ajax-profile.php",
data: "u=<?php echo $key; ?>",
success: function(response)
{
jQuery('#show-modal .modal-body').html(response);
}
});
}, 800);
}
</script>
这是PHP文件,它将结果返回给AJAX Call:
$user_link = $_GET['u'];
if ($user_link==="$user_link") {
$result = mysqli_query($con,"SELECT * FROM $table_name WHERE activ_key='$user_link'");
while($row = mysqli_fetch_array($result)) {
echo $row['username'];
echo $row['fname'];
echo $row['lname'];
}
} else {
echo '
<div class="alert alert-danger">
<button type="button" class="close" data-dismiss="alert">
<span aria-hidden="true">×</span>
<span class="sr-only">Close</span>
</button>
<strong>Oh Snap!</strong> Something went terribly wrong.
</div>
';
}
问题是我似乎无法获得正确的用户详细信息,它总是输出数据库表中的最后一行。
答案 0 :(得分:1)
这是因为你在底部回显键,你需要在循环时传递密钥
echo '<a href="javascript:;" onclick="showAjaxModal(\'' . $row["activ_key"] . '\');" class="btn btn-primary btn-xs" data-toggle="tooltip" data-placement="top" title="" data-original-title="View Profile"><i class="fa fa-eye"></i></a>';
然后需要JS函数中的键
<script type="text/javascript">
function showAjaxModal(key)
{
jQuery('#show-modal').modal('show', {backdrop: 'static'});
setTimeout(function()
{
jQuery.ajax({
url: "data/ajax-profile.php",
data: "u="+key,
success: function(response)
{
jQuery('#show-modal .modal-body').html(response);
}
});
}, 800);
}
</script>