【发布时间】:2017-03-14 15:43:19
【问题描述】:
三个选项是名称、击球顺序和位置。用户必须选择他/她希望对值进行排序的选项。目前,它会打印排序后的击球顺序值,因为这是我调用 echo 之前的最后一个排序顺序。当用户选择一个选项时,我该如何做到这一点,只显示该选项的输出?什么都不选也没有输出?
这里是 HTML
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="Assignment.css">
</head>
<body>
<main>
<form action="Assignment1.php" method="post">
<h2>Rays Lineup Display</h2>
<div id="data">
<p>Select Size</p>
<input type="radio" name="order" value="player_name">Player Name<br>
<input type="radio" name="order" value="pos">Position<br>
<input type="radio" name="order" value="bats">Batting Order<br>
</div>
<div id="buttons">
<label> </label>
<input type="submit" value="Submit"><br>
</div>
</form>
</main>
</body>
</html>
PHP 文件
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="Assignment.css">
</head>
<body>
<?php
$selection_list = array('pos', 'player_name', 'bats');
$players = array (
array('pos' => 'SS', 'player_name' => 'Beckham', 'bats' => 1),
array('pos' => 'C', 'player_name' => 'Casali', 'bats' => 8),
array('pos' => '2B', 'player_name' => 'Forsythe', 'bats' => 3),
array('pos' => '1B', 'player_name' => 'Loney', 'bats' => 7),
array('pos' => 'LF', 'player_name' => 'Jennings', 'bats' => 2),
array('pos' => 'CF', 'player_name' => 'KierMaier', 'bats' => 9),
array('pos' => '3B', 'player_name' => 'Longoria', 'bats' => 4),
array('pos' => 'RF', 'player_name' => 'Mahtook', 'bats' => 5),
array('pos' => 'DH', 'player_name' => 'Souza', 'bats' => 6),
);
function getSortFunction( $sortKey ) {
return function( $personA, $personB ) use ( $sortKey ) {
return ( $personA[$sortKey] < $personB[$sortKey] ) ? -1 : 1;
};
}
$order = filter_input(INPUT_POST,'order');
usort( $players, getSortFunction( 'pos' ) );
usort( $players, getSortFunction( 'player_name' ) );
usort( $players, getSortFunction( 'bats' ) );
echo '<pre>'; print_r($players); echo '<pre/>';
?>
</body>
【问题讨论】:
-
到目前为止你有什么尝试:)?
-
@AnnSophieAngermüller 你好,我不小心放了诱饵 PHP 文件。我现在更新了。
-
您将值保存到 $order 但您仍然对所有结果进行排序。只排序一个,与 $order 匹配
标签: php html arrays multidimensional-array