将会话变量从一个页面传递到另一个页面


pass session variables from one page to another

我有一个php页面,它是一种具有3个下拉部分的子表单,当您单击按钮时,必须发送下拉列表中的选择。形式如下:

<div class="statsValPlate">
            <label>Main Score</label>
            <select name="scoreSelect">
                <option value="301">301</option>
                <option value="501">501</option>
                <option value="701">701</option>
                <option value="1001">1001</option>
            </select>
        </div>
        <div class="statsValPlate">
            <label>Legs Format</label>
            <select name="legSelect">
                <option value="3">2 of 3</option>
                <option value="5">3 of 5</option>
                <option value="7">4 of 7</option>
                <option value="9">5 of 9</option>
            </select>
        </div>
        <div class="statsValPlate">
            <label>Sets Format</label>
            <select name="setSelect ">
                <option value="3">2 of 3</option>
                <option value="5">3 of 5</option>
                <option value="7">4 of 7</option>
                <option value="9">5 of 9</option>
            </select>
        </div>
        <form method="get" action="scoreboard.php">
            <button id="submit" name ="submit" class="push_button red">Start Game</a><br>
        </form>
<?php
        $_SESSION['gameScore'] = $_POST['scoreSelect'];
        $_SESSION['legScore'] = $_POST['legSelect'];
        $_SESSION['setScore'] = $_POST['setSelect'];
?>

例如,我希望第一种形式的选择必须在这里显示为标签值:

<label class="scorePlate" id="num1" value="<?php echo $_SESSION['gameScore']?>">
                            <!--<?php echo $_SESSION["player1Score"]?>-->
                            <script>
                                document.write(new_score_player_1);
                            </script>
                        </label>

但由于某种原因,它不起作用。有什么问题

首先,启动会话-session_start()。

第二,将所有选择放入表单中。当它们在表单之外时,所选的值将不会在表单提交时发送。

其次,使表单的方法POST,而不是GET。

你的代码应该是这样的:

<?php
    session_start();
    if (isset($_POST['submit']) {
        $_SESSION['gameScore'] = $_POST['scoreSelect'];
        $_SESSION['legScore'] = $_POST['legSelect'];
        $_SESSION['setScore'] = $_POST['setSelect'];
    }
?>
<form method="POST" action="scoreboard.php">
    <div class="statsValPlate">
        <label>Main Score</label>
        <select name="scoreSelect">
            <option value="301">301</option>
            <option value="501">501</option>
            <option value="701">701</option>
            <option value="1001">1001</option>
        </select>
    </div>
    <div class="statsValPlate">
        <label>Legs Format</label>
        <select name="legSelect">
            <option value="3">2 of 3</option>
            <option value="5">3 of 5</option>
            <option value="7">4 of 7</option>
            <option value="9">5 of 9</option>
        </select>
    </div>
    <div class="statsValPlate">
        <label>Sets Format</label>
        <select name="setSelect ">
            <option value="3">2 of 3</option>
            <option value="5">3 of 5</option>
            <option value="7">4 of 7</option>
            <option value="9">5 of 9</option>
        </select>
    </div>
    <button id="submit" name ="submit" class="push_button red">Start Game</a><br>
</form>

在另一页:

<?php
    session_start();
?>
<label class="scorePlate" id="num1" value="<?php echo $_SESSION['gameScore']; ?>">
    <!--<?php echo $_SESSION["player1Score"]?>-->
    <script>
        document.write(new_score_player_1);
    </script>
</label>