发布具有相同名称属性的多个字段的表单

时间:2014-01-27 21:58:41

标签: php forms

我从我的数据库中获取信息,然后根据信息构建一个来自。我的想法是想要捕捉每个玩家在游戏中所做的分数。这显然意味着我的输入字段具有相同的PID属性以及得分输入字段。我的代码如下所示:

            <form name="enterscores" id="enterscores" method="post" action="parseFiles/parse_enterscores.php">
            <b>Game number: </b> <input type="text" id="entergameID" name="entergameID" maxlength="10" size="10" placeholder="Game number" />
            <hr />
            <table width="50%">
                <tr>
                    <td>
                        <b>First name</b>
                    </td>
                    <td>
                        <b>Last name</b>
                    </td>
                    <td>
                        <b>Score</b>
                    </td>
                </tr>
                <?php

                foreach ($LoginIDs as $PID){
                    $Login_ID = $PID;
                    cleanNumber($Login_ID);

                    foreach (getPlayerDetails($Login_ID) as $playerdDetails) {
                        $Login_ID = (int)$playerdDetails->Login_ID;
                        $First_Name = $playerdDetails->First_Name;
                        $Last_Name = $playerdDetails->Last_Name;
                        ?>
                        <tr>
                            <td>

                                <input type="hidden" name="PID" id="PID" value="<?php echo $Login_ID;?>" />
                                <?php echo $First_Name; ?>
                            </td>
                            <td>
                                <?php echo $Last_Name; ?>                                    
                            </td>
                            <td>
                                <input type="hidden" id="number_of_players" name="number_of_players" value="<?php echo $number_of_players; ?>" />
                                <input type="text" id="playerscore" name="playerscore" placeholder="Score" maxlength="3" size="3" />
                            </td>
                        </tr>


                        <?php
                    }
                }
                ?>
                <tr>
                    <td>
                        <input type="submit" id="enterscoresbtn" name="enterscoresbtn" value="Submit scores" />
                    </td>
                </tr>
            </table>
        </form>
            <?php

    }?>

在我的解析页面上,我有以下代码:

<?php

if(!$_POST){
    header('Location: ../');
    exit;
}

if(isset($_POST['enterscoresbtn'])){
    require_once (__DIR__ . '/../functions/functions.php');
    echo '<pre>';
    var_dump($_POST);
    echo '</pre>';

    $PIDs = $_POST['PID'];

    print_r($PIDs);

    $playerscores = $_POST['playerscore'];

    $number_of_players = $_POST['number_of_players'];
    cleanNumber($number_of_players);

//        $player = array_combine($PIDs, $playerscores);

    //print_r($player);

}?>

我得到的输出如下:

array(5) {
  ["entergameID"]=>
  string(2) "15"
  ["PID"]=>
  string(1) "9"
  ["number_of_players"]=>
  string(1) "4"
  ["playerscore"]=>
  string(3) "104"
  ["enterscoresbtn"]=>
  string(13) "Submit scores"
}

如何发布这些值,以及我如何才能将每个登录ID绑定到解析页面上的正确分数?

1 个答案:

答案 0 :(得分:0)

创建您的输入,例如<input name="playerscore[<?php echo $Login_ID ?>]" />或类似的东西。这将为您提供发布数据,如

$_POST['playerscore'] = array( 23=> 123, 42 => '<somePlayerScore>' /* and so on ... */ )

我会把它写成评论,但这不允许格式化帖子

相关问题