PHP-获取单击的表行的id


PHP - Get the id of the table row clicked

我目前正在创建我的网站的帐户管理系统,我决定添加一个功能,使我能够声明特定帐户是活动的还是非活动的。数据是从我的mysql表中检索的。

$query = mysqli_query($DBConnect,"SELECT * from REG");
echo "<table class = 'table'  style = 'width:90%;text-align:center'>";
        while($getData = mysqli_fetch_assoc($query))
        {
            $username = $getData['uname'];
            $fname = $getData['fname'];
            $mname = $getData['mname'];
            $lname = $getData['lname'];
            $bday = $getData['bday'];
            $email = $getData['email'];
            $contact = $getData['contact'];
            $gender = $getData['gender'];
            if($getData['userlevel'] == 1)
            {
                $userlevel = "user";
            }
            else
            {
                $userlevel = "admin";
            }
            if($getData['status'] == 1)
            {
                $status = "active";
            }
            else
            {
                $status = "disabled";
            }
            echo "<tr>";
            echo "<td>$username</td><td>$fname</td><td>$mname</td><td>$lname</td><td>$bday</td><td>$email</td><td>$contact</td><td>$gender</td><td>$userlevel</td><td>
            <a href ='..'status.php' >$status </a></td></tr>";
        }
        echo "</table>";

这是status.php 的内容

session_start();
$DBConnect = mysqli_connect("localhost", "root","","kenginakalbo")
or die ("Unable to connect".mysqli_error());

$query = mysqli_query($DBConnect,"SELECT * from REG where id = '$_SESSION[id]'");
        while($getData = mysqli_fetch_assoc($query))
        {
            $status = $getData['status'];
            echo "'$_SESSION[id]'";
        }
if($status == 1)
{
    $query = mysqli_query($DBConnect, "UPDATE REG SET status = 0 where id = '$_SESSION[id]'");
}
else if ($status == 0)
{
    $query = mysqli_query($DBConnect, "UPDATE REG SET status = 1 where id = '$_SESSION[id]'");
}
header("Location: admin/login.php");

我需要做的是获得单击的行的ID,并在会话中声明它,以便它可以在"status.php"文件中使用。但在这段代码中,表中的最后一个id是由于循环而在会话中声明的id。如何获取被单击行的id值?(php中有类似onClick的函数吗?谢谢。

传递id参数,

status.php?id=$id;

status.php

$id = $_GET['id'];

更改:

   echo "<td>$username</td><td>$fname</td><td>$mname</td><td>$lname</td><td>$bday</td><td>$email</td><td>$contact</td><td>$gender</td><td>$userlevel</td><td>
    <a href ='..'status.php' >$status </a></td></tr>";

至:

   echo "<td>$username</td><td>$fname</td><td>$mname</td><td>$lname</td><td>$bday</td><td>$email</td><td>$contact</td><td>$gender</td><td>$userlevel</td><td>
    <a href ='..'status.php{$getData['id']}' >$status </a></td></tr>";

在您的status.php中,将$_SESSION['id']更改为$_GET['id']。但请确保首先通过mysql_real_escape_string($_GET['id'])或PDO防止SQL注入。

PHP中没有onclick函数,但您可以在每行上创建一个按钮来保存所属行的值的表单。让该表单只需向status.PHP发送一个post或get请求。将其添加到会话中可能是个坏主意。

您也可以创建一个链接来修改循环,这样就有一个名为$rowid的属性,并在循环中递增它,而不是按钮。

<a href="/status.php?rowid=<?php echo $rowid; ?>"></a>

也许,您真正想要的是在这里使用GET超全局。你可以切换对于

然后,在status.php页面上使用$_GET["userid"]而不是$_SESSION[id]。

此外,您不需要一段时间就可以进入状态页。您应该检查结果的数量,如果是1,则表示用户存在,然后只执行$getData=mysqli_fetch_assoc($query),而不使用while