如何使用纯PHP启用和禁用按钮?

时间:2016-12-11 09:46:01

标签: javascript php jquery

我坚持如何在不使用JavaScript,jQuery等的PHP中启用和禁用按钮,我是PHP编程的新手请帮我找出这种情况。
这是我的代码:

<?php
if(isset($_POST['save']))
{
    echo 'Hello robin';
}

if(isset($_POST['serach']))
{
    echo 'Byeeee robin';
}
?>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <link rel="stylesheet" href="BootStrap/css/bootstrap.min.css">
        <title></title>
    </head>
    <body>
        <div class="container jumbotron">
            <form action="" method="post">
                <div class="btn-group-xs">
                    <button type="submit" id="btn1" name="save">Save</button>
                    <button type="submit" id="btn2" name="serach">Search</button>
                </div>
            </form>
        </div>
    </body>
</html>

1 个答案:

答案 0 :(得分:0)

您可以在成功保存操作后禁用例如“保存”按钮,如下所示:

<?php
$isSaveDisabled = false;
if(isset($_POST['save']))
    {
        echo 'Hello robin';
        $isSaveDisabled = true;
    }
if(isset($_POST['serach']))
    {
        echo 'Byeeee robin';
    }

?>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <link rel="stylesheet" href="BootStrap/css/bootstrap.min.css">
        <title></title>
    </head>
    <body >
        <div class="container jumbotron">

        <form action="" method="post">

            <div class="btn-group-xs">
            <button type="submit" id="btn1" name="save" <?php if ($isSaveDisabled) { echo 'disabled="disabled"';}?>>Save</button>
            <button type="submit" id="btn2" name="serach">Search</button>
            </div>


        </form>
        </div>
    </body>
</html>

由于PHP是无状态的,并且这种基本解决方案每次在用户交互之后都会引发整页翻译,您必须评估并构建整个应用程序的状态,并在每次请求后基于它呈现页面。 (在这个简单的例子中,它只表示您必须评估是否启用了“保存”按钮。)

即使你有一些前端逻辑,你总是必须在后端验证状态,因为它很容易克服仅限JS的限制。 但是,通常有两种方法可以获得更好的用户体验(如果通过AJAX保存,则会立即禁用“保存”按钮,用户无需等待整页重新加载)

正如先生们在评论中所建议的那样,尽可能地分离你的逻辑和代码是非常重要的。如果它只是用于实验,那就完全没问题了。但随着应用程序的增长,更难以了解指出发生了什么。因此,它可能导致越来越多的错误和难以维护的产品。

更新(有关按下“创建”按钮后禁用“保存”按钮的问题。)

这通常是一个用JavaScript实现的功能,因此我不建议将它用于生产用途。但是如果你想要纯PHP解决方案,你可以这样做:

<?php
$isSaveDisabled = false;
if(isset($_POST['save'])) {
    echo 'Hello robin';
} else if (isset($_POST['create'])) {
    $isSaveDisabled = true;
}
if(isset($_POST['serach'])) {
    echo 'Byeeee robin';
}

?>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <link rel="stylesheet" href="BootStrap/css/bootstrap.min.css">
        <title></title>
    </head>
    <body >
        <div class="container jumbotron">

        <form action="" method="post">
            <div class="btn-group-xs">
                <button type="submit" id="btn1" name="save" <?php if ($isSaveDisabled) { echo 'disabled="disabled"';}?>>Save</button>
                <button type="submit" id="btn2" name="serach">Search</button>
                <button type="submit" id="btn3" name="create">Create</button>
            </div>
         </form>
        </div>
    </body>
</html>