HTML или php радио-кнопка странное поведение? - PullRequest
1 голос
/ 03 февраля 2012

Я делал небольшую тестовую форму html / php.Здесь все хорошо ... но кнопки радио работают странно.Вот код и ниже будет скриншот странного поведения:

HTML

<!DOCTYPE html>
<html>
    <head>
    </head>

    <body>
        <h1>Differend sided dice</h1>
        <form action="dice.php" method="post">
        <input type="radio"   value="4" name="4side" checked  />4 side<br />
        <input type="radio"   value="10"name="10side" />10 side<br />
        <input type="radio"   value="20"name="20side" />20 side<br />
        <input type="submit" >
        </form>
    </body>
</html>

PHP

<html><head></head>
<body>
<?

    function rollOut($dice)  {
        $out = <<<HERE
        <p>You rolled <span style="color:red"> $dice </span> of the diec</p>
HERE;
        return $out;
        }

    function diceSide() {
        $dicetype = rand(1, 10); /* default */
        if ( isset($_POST["4side"] ) ) {
            $dicetype = rand(1, $_POST["4side"] );
            print rollOut($dicetype);
            }
        else if ( isset($_POST["10side"]) ) {
            $dicetype = rand(1, $_POST["10side"] );
            print rollOut($dicetype);
            }
        else if ( isset($_POST["20side"]) ) {
            $dicetype = rand(1, $_POST["20side"]); 
            print rollOut($dicetype);
            }
        else { 
        $dicetype = rand(1, 20);
        rollOut($dicetype);
        }
    }

    /* init main */
    diceSide(); 

    ?>
</body>
</html>

И странная вещьприкрепить к скриншоту: bug

Все кнопки действуют как флажки ???Любая информация?

1 Ответ

8 голосов
/ 03 февраля 2012

вы должны установить одно и то же имя для всех <input type='radio'>, чтобы они действовали, как ожидалось

HTML код:

<!DOCTYPE html>
<html>
    <head>
    </head>

    <body>
        <h1>Differend sided dice</h1>
        <form action="dice.php" method="post">
        <input type="radio"   value="4" name="selectMe" checked  />4 side<br />
        <input type="radio"   value="10"name="selectMe" />10 side<br />
        <input type="radio"   value="20"name="selectMe" />20 side<br />
        <input type="submit" >
        </form>
    </body>
</html> 

PHP-код (я взял на себя свободу немного его упростить - должен делать то же самое, что и раньше, просто меньше кода):

<html><head></head>
<body>
<?

    function rollOut($dice)  {
        $out = '<p>You rolled <span style="color:red"> '.$dice .'</span> of the diec</p>';
        return $out;
        }

    function diceSide() {
        $dicetype = rand(1, 10); /* default */

        if ( isset($_POST["selectMe"] ) ) {
            $dicetype = rand(1, $_POST["selectMe"]); 
            }
        print rollOut($dicetype);
    }
    /* init main */
    diceSide(); 

    ?>
</body>
</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...