Как создать выпадающие списки и случайным образом отобразить один из выбранных элементов?

#php #html #random

#php #HTML #Случайный

Вопрос:

В приведенном ниже фрагменте кода существует 4 текстовых поля. Вы можете ввести все, что хотите, в этих четырех текстовых полях, и когда вы нажмете кнопку «Выбрать одно», вы получите обратно текст, который вы ввели в текстовых полях. Но я хотел бы изменить эти текстовые поля на выпадающие списки, из которых вы можете выбрать четыре разные команды, и когда вы нажимаете кнопку «Выбрать одну», случайным образом вы получите одну из четырех выбранных вами команд.

 <?php

error_reporting(0);

if(isset($_POST['submit']))
    {
        $team1=$_POST['team1'];
        $team2=$_POST['team2'];
        $team3=$_POST['team3'];
        $team4=$_POST['team4'];

        $teams=array
        (
            "1" =>"$team1",
            "2" =>"$team2",
            "3" =>"$team3",
            "4" =>"$team4",
        );
    $random = rand(1, 4);
    }
?>


<html>
<form action="index.php" method="POST">
Enter the team name<input type="text" name="team1" value="<?php echo $team1 ?>"><br>
Enter the team name<input type="text" name="team2" value="<?php echo $team2 ?>"><br>
Enter the team name<input type="text" name="team3" value="<?php echo $team3 ?>"><br>
Enter the team name<input type="text" name="team4" value="<?php echo $team4 ?>"><p>

<input type="submit" name="submit" value="Pick One!"><br>
</form>

<?php

print $teams["$random"];

?>
</html>
  

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

1. Неясно, в чем заключается ваш актуальный вопрос здесь сейчас. Где / как это имеет какое-либо отношение к выпадающему меню?

2. извините, я пытаюсь объяснить лучше. Итак, прямо сейчас есть 4 места для ввода текста. Вы можете написать все, что хотите, и когда вы нажмете кнопку «Выбрать один», вы получите обратно любой текст, который вы ввели ранее. Я хотел бы изменить эти места ввода текста на выпадающие списки, где вы можете выбрать несколько команд, и когда вы нажмете «выбрать одну», вы получите 1 команду случайным образом.

Ответ №1:

Если вы хотите использовать выпадающие списки вместо текстовых полей, вы можете использовать фрагмент кода ниже:

 <!DOCTYPE html>
<html>
<body>

    <form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']);?>" method="post">

        <label for="select1">Team 1: </label>
        <select name="team1" id="select1">
            <option>TeamName1</option>
            <option>TeamName2</option>
            ...
        </select><br/>

        <label for="select2">Team 2: </label>
        <select name="team2" id="select2">
            <option>TeamName1</option>
            <option>TeamName2</option>
            ...
        </select><br/>

        <label for="select3">Team 3: </label>
        <select name="team3" id="select3">
            <option>TeamName1</option>
            <option>TeamName2</option>
            ...
        </select><br/>

        <label for="select4">Team 4: </label>
        <select name="team4" id="select4">
            <option>TeamName1</option>
            <option>TeamName2</option>
            ...
        </select><br/>

        <input type="submit" name="submit" value="Submit">

    </form>

<?php

    if (!empty($_POST['submit'])) {

        $randnumber = rand(1, 4);

        echo $_POST['team' . $randnumber];

    }

?>

</body>
</html>
  

Я надеюсь, что мой ответ будет полезен для вас

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

1. к сожалению, я получаю сообщение об ошибке, когда пытаюсь добавить тег more option. Сообщение об ошибке: «Неопределенный индекс» (последние строки: 48 и 55), поэтому с for и rand что-то не так. Я пытаюсь увеличить его, но все еще плохо работает.

2. @Santiago так что извините меня за это. Это была моя ошибка. Я только что отредактировал приведенный выше фрагмент кода, поэтому, если вы используете его сейчас, проблем не будет.

3. я не хочу беспокоить вас такой маленькой проблемой, но это все еще работает плохо. Когда я пытаюсь увеличить, я получаю код ошибки, который выглядит так: «Неопределенное смещение: 4». Итак, когда прямо сейчас в настройках есть teamname1 и teamname2. Я добавляю teamname3, и когда я получаю beck this (teamname 3), я получаю такой код ошибки. Я пытаюсь увеличить ранд, но получаю то же сообщение об ошибке. (Обратите внимание: Неопределенное смещение: 4 в D:xampphtdocsindex.php в строке 55)

4. @Santiago, я только что изменил код. Пожалуйста, проверьте это еще раз. Так что извините меня за ошибки, которые вы получили.

5. прямо сейчас это идеально. Спасибо вам за все ваши усилия.