如何在HTML表中创建一个按钮,使PHP执行MySQL数据库查询,而不需要单独的js文件?

如何在HTML表中创建一个按钮,使PHP执行MySQL数据库查询,而不需要单独的js文件?,php,mysql,Php,Mysql,这就是我想要引入简单onclick事件来更改db中的值的地方 echo "<h2>User Accounts</h2>"; echo "<div style='float: left; width: 40%'>"; $stmt = $dbh->prepare("SELECT username, statid, activated, level FROM accesslist ORD

这就是我想要引入简单onclick事件来更改db中的值的地方

    echo "<h2>User Accounts</h2>";
    echo "<div style='float: left; width: 40%'>";
    $stmt = $dbh->prepare("SELECT username, statid, activated, level FROM accesslist ORDER BY level DESC");
    $stmt->execute();
    $results = $stmt->fetchAll();
        echo "<table class=\"table_lines\" cellspacing=0 cellpadding=6 border=0 width=95%>";
            echo "<thead>";
                echo "<th>#</th>";
                echo "<th>Username</th>";
                echo "<th>Status</th>";
                echo "<th>Remove Account</th>";
            echo "</thead>";
            echo "<tbody>";
            if($result['activated'] = 1)
                    {
                        $activation = "Activated";
                        $count = 1;
                        foreach($results as $result)
                            {
                                echo "<tr>";
                                    echo "<td>" . $count . "</td>";
                                    echo "<td><a href='http://www.************.php?id=" . $result['statid'] . "'>" . $result['username'] . "</a></td>";
                                    echo "<td align=\"center\">" . $activation . " <input type=\"submit\" class= \"button\" name= \"deactivate\" value=\"Deactivate\" /></td>";
                                    echo "<td><input type=\"submit\" class= \"button\" name=\"deleteuser\" value=\"Remove Account\" /></td>";
                                echo "</tr>";
                                $count++;
                            }
                    }
                    else
                    { 
                        $activation = "Not Activated";
                        $count = 1;
                        foreach($results as $result)
                            {
                                echo "<tr>";
                                    echo "<td>" . $count . "</td>";
                                    echo "<td><a href='http://www.**********.php?id=" . $result['statid'] . "'>" . $result['username'] . "</a></td>";
                                    echo "<td align=\"center\">" . $activation . " <input type=\"submit\" class= \"button\" name= \"activate\" value=\"Activate\" /></td>";
                                    echo "<td><input type=\"submit\" class= \"button\" name=\"deleteuser\" value=\"Remove Account\" /></td>";
                                echo "</tr>";
                                $count++;
                            }
                    }
        
            echo "</tbody>";
        echo "</table>";
    echo "[END]";
    $dbh = null;
    
}
我尝试过使用“formaction='http://********.php'method='post'”; 如果(设置($\u POST['activate']),但按钮在单击时似乎不起作用。可能是我做错了什么/


另外,我是初学者。我必须知道,在没有单独的js EventListener的情况下,php内部是否有更简单的onclick方法来影响db中的更改。

您可以使用AJAX实现。很明显,我会给您一些代码,希望能对您有所帮助,这些代码对您有参考价值

<script type="text/javascript">
    function activate(id) { // you can duplicate this function any way you like
       $.ajax({
            type: 'POST',
            url: 'functions.php',
            data: {
                username: id,
                type:'Active';
                   },
            success: function (answer) {
                $("#result").html(answer) // if you wanna get response from function.php
            }
        })
    }
</script>

函数激活(id){//您可以按任何方式复制此函数
$.ajax({
键入:“POST”,
url:'functions.php',
数据:{
用户名:id,
类型:'主动';
},
成功:功能(答案){
$(“#result”).html(答案)//如果您想从function.php获得响应
}
})
}
在Function.php中

<?PHP

$username = $_POST['username ']; or you can get NAME
$Type = $_POST['type'];

if ($Type='Active') // you can duplicate any way you like
{
    global $dbh;

    $stmt = $dbh->prepare("UPDATE accesslist SET activated = 1 LIMIT 1");
    $stmt->bindParam(1, $username, PDO::PARAM_STR);
    $stmt->execute();
}

?>

最后换一行

 echo "<td><input type=\"submit\" class= \"button\" name=\"deleteuser\" value=\"Remove Account\" /></td>";
echo”“;

echo“删除帐户”;

你可以使用AJAX,我会给你一些代码,希望能对你有所帮助,这些代码对你有参考价值

<script type="text/javascript">
    function activate(id) { // you can duplicate this function any way you like
       $.ajax({
            type: 'POST',
            url: 'functions.php',
            data: {
                username: id,
                type:'Active';
                   },
            success: function (answer) {
                $("#result").html(answer) // if you wanna get response from function.php
            }
        })
    }
</script>

函数激活(id){//您可以按任何方式复制此函数
$.ajax({
键入:“POST”,
url:'functions.php',
数据:{
用户名:id,
类型:'主动';
},
成功:功能(答案){
$(“#result”).html(答案)//如果您想从function.php获得响应
}
})
}
在Function.php中

<?PHP

$username = $_POST['username ']; or you can get NAME
$Type = $_POST['type'];

if ($Type='Active') // you can duplicate any way you like
{
    global $dbh;

    $stmt = $dbh->prepare("UPDATE accesslist SET activated = 1 LIMIT 1");
    $stmt->bindParam(1, $username, PDO::PARAM_STR);
    $stmt->execute();
}

?>

最后换一行

 echo "<td><input type=\"submit\" class= \"button\" name=\"deleteuser\" value=\"Remove Account\" /></td>";
echo”“;

echo“删除帐户”;

将其作为ulr或表单提交,或者使用ajax如果您希望页面保持不变(我想是这样),您将需要一个ajax调用。(只是谷歌一下…)它是javascript,是的,但它不是一个单独的js文件。您需要一个专用的php脚本来接收此ajax调用并做出相应的反应(在db中进行更改)。不要忘记
WHERE
语句的
UPDATE
子句。。。我认为PDO的bindParam不能像你认为的那样工作。再次在php.net上查看它。将其作为ulr或表单提交,或者使用ajax如果您希望页面保持不变(我想是这样),您将需要一个ajax调用。(只是谷歌一下…)它是javascript,是的,但它不是一个单独的js文件。您需要一个专用的php脚本来接收此ajax调用并做出相应的反应(在db中进行更改)。不要忘记
WHERE
语句的
UPDATE
子句。。。我认为PDO的bindParam不能像你认为的那样工作。再次在php.net上查看它。