Отключение кнопки после нажатия на нее в php или javascript

#javascript #php #html #button #disable

#javascript #php #HTML #кнопка #отключить

Вопрос:

Я пытаюсь создать игру «палач» с кнопками для букв на PHP. Проблема в том, что я хочу, чтобы кнопка, которая является буквенным вводом, отключалась после того, как она была нажата и обработана, но все решения, которые я пробовал, не работают, мне нужно, чтобы буква, на которую нажали, была отключена, в то время как остальные остаются активными до следующего сеанса. Код приведен ниже, есть какие-нибудь мысли?

 <?php
    function plateup (){
        $plate = '';
        for ($i=0; $i < strlen($_SESSION['mystery']) ; $i  ) {
            array_push($_SESSION['mysteryletters'],$_SESSION['mystery'][$i]);
            
            if (in_array($_SESSION['mystery'][$i],$_SESSION['guesses'])) {
            $plate = $plate.$_SESSION['mystery'][$i].' ';
            } else {
                $plate = $plate.'_ ';
            }
        }
        echo '<h2>'.$plate.'</h2>';
    }
    
    if (($_SESSION['numwrong'] < 5)amp;amp;(!$_SESSION['won'])){
        ?>
    
        <form name="drawer" action="./" method="post">
            <input type="submit"  class="letter" name="letter" value="A">
            <input type="submit" class="letter" name="letter" value="B">
            <input type="submit" class="letter" name="letter" value="C">
            <input type="submit" class="letter" name="letter" value="D">
            <input type="submit" class="letter" name="letter" value="E">
            <input type="submit" class="letter" name="letter" value="F">
            <input type="submit" class="letter" name="letter" value="G">
            <input type="submit" class="letter" name="letter" value="H">
            <input type="submit" class="letter" name="letter" value="I">
            <input type="submit" class="letter" name="letter" value="J">
            <input type="submit" class="letter" name="letter" value="K">
            <input type="submit" class="letter" name="letter" value="L">
            <input type="submit" class="letter" name="letter" value="M">
            <input type="submit" class="letter" name="letter" value="N">
            <input type="submit" class="letter" name="letter" value="O">
            <input type="submit" class="letter" name="letter" value="P">
            <input type="submit" class="letter" name="letter" value="Q">
            <input type="submit" class="letter" name="letter" value="R">
            <input type="submit" class="letter" name="letter" value="S">
            <input type="submit" class="letter" name="letter" value="T">
            <input type="submit" class="letter" name="letter" value="U">
            <input type="submit" class="letter" name="letter" value="V">
            <input type="submit" class="letter" name="letter" value="W">
            <input type="submit" class="letter" name="letter" value="X">
            <input type="submit" class="letter" name="letter" value="y">
            <input type="submit" class="letter" name="letter" value="z">
            </form>
    
    <?php
    } else {
        ?>
    <form name="redrawer" action="" method="post">
        <input type="submit" name="newgame" value="New Game">
    </form>
    <?php
    }
        
    
    if (isset($_POST['letter'])) {
        
        if (strlen($_POST['letter'])>0){
            $letter = ($_POST['letter'][0]);
        
        if (!in_array($letter, $_SESSION['guesses'])){
                array_push($_SESSION['guesses'],$letter);
            }
            
            if (!in_array($letter, $_SESSION['mysteryletters'])){
                $_SESSION['numwrong']  = 1;
            }
        }
    } else {
        $_SESSION['numwrong'] = 0;
        $_SESSION['guesses'] = [];
        $_SESSION['won'] = false;
        
        $lines = file('words.txt');
        
        $_SESSION['mystery'] = trim($lines[array_rand($lines)]);
        $_SESSION['mysteryletters'] = array_unique(str_split($_SESSION['mystery']));        
    }
    
    echo '<p>Guessed: [ '.implode(" ",$_SESSION['guesses']).' ]';
        
    plateup();
?>
  

Комментарии:

1. Вам необходимо сгенерировать таблицу букв в вашем php-коде, чтобы вы могли добавлять атрибуты включения / выключения к отдельным выбранным буквам. Или просто не включать элемент ввода html для уже используемых букв.

Ответ №1:

Отключение HTML-элемента должно происходить во внешнем интерфейсе, чего PHP не может сделать, поскольку он работает исключительно на серверной части. Вы можете попросить JS отключить часть интерфейса и, возможно, сохранить last pressed button в сеансе PHP, чтобы ее больше нельзя было использовать в фоновом режиме..

Я уверен, что есть другие подходы, в зависимости от того, что именно вам нужно, чтобы произошло.

Комментарии:

1. Знаете ли вы способ, я пробовал и тоже не могу найти решение для этого.