我需要编写一个能保持保龄球比赛得分的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" />
答案 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
} ?>