我需要为我的课程编写一个程序,以保持保龄球比赛的得分

时间:2015-02-16 20:26:41

标签: php arrays

我需要编写一个能保持保龄球比赛得分的PHP程序。我可以处理不是问题的分数的计算。我的问题是首先将数据放入数组中。

我的想法是为每个玩家安排一个阵列,如下所示:

$scores = array(
array(
    'name' => 'Player 1',
    'sheet' => '10,10,10,10,10,10,10,10,10,10,10,10'
),
array(
    'name' => 'Player 2',
    'sheet' => '10,10,10,10,10,10,10,10,10,10,10,10'
),

);

我希望有一个初始表单,您可以在其中输入玩家名称,然后创建数组,然后为每个玩家(数组)创建另一个表单以输入分数。

这样做最好的方法是什么?

由于

编辑:这会有用吗?

<input maxlength="30" name="players[1][player1]" size="30" type="text" />
<input maxlength="30" name="players[2][player2]" size="30" type="text" />

因此,如上所示的第一个表单将创建数组和播放器名称值。第二种形式如下所示会增加分数,虽然我似乎无法使其发挥作用。

<input maxlength="30" name="players[1][score]" size="30" type="text" />
<input maxlength="30" name="players[2][score]" size="30" type="text" />

1 个答案:

答案 0 :(得分:0)

这是一个小例子。也许马车,但它应该工作(灵感)

<h1>Bowling</h1>

<?php

if ( isset ( $_POST['next'] ) ) {

  if ( isset ( $_POST['players'] ) ) {

    $exp = explode("\n", trim($_POST['players']));
    echo "<h2>Input Score</h2>";

    echo '<form method="post" action="bowling.php">';
    foreach ( $exp as $p ) {
    if ( trim($p) != '') {
      $name = trim(htmlspecialchars($p));
      echo '<fieldset>';
      echo '<label><h3>Input "' .$name.'" score</h3></label>';
      echo '<input style="width:100%" type="text" name="score[]" placeholder="Put in the score for ' . $name . '. Just for example 1 2 3 4 5">';
      echo '<input type="hidden" name="player[]" value="'.$name.'">';

      echo '</fieldset>';
    }
    }
    echo '<input type="submit" name="next" value="Results">';
    echo '</form>';
  }

  if ( isset($_POST['score'], $_POST['player']) ) {
    echo "<h2>Results</h2>";
    $i = 0;
    $result = [];
    foreach ( $_POST['player'] as $name ) {
      $result[$name] = $_POST['score'][$i];
      $i++;
    }

    var_dump($result);
  }


} else {
?>
<form method="post" action="bowling.php">
<textarea style="width:500px; height:500px;" name="players" placeholder="One player in each line and everything will be fine"></textarea>
<input name="next" type="submit">
</form>
<?php
} ?>