我有一个玩家桌子,所有玩家都存放在其中。 当我将为主队和客队选择球员时。我在播放器表上有两个不同的sql查询。
<?
$select_query = mysql_query("SELECT * FROM $player_table_2016 WHERE active = 1 ORDER by tname ASC");
echo "<select data-placeholder='Spieler auswählen...' class='chosen-select' style='width:220px;' multiple tabindex='4' name='homespieler[]' required>";
while ($row = mysql_fetch_array($select_query)) {
echo "<option value='".$row['id']."'>" .$row['tname']."</option>";
</option>";
}
echo "</select>";
?>
之后我选择了另一个问题的客队:
$select_query = mysql_query("SELECT * FROM $player_table_2016 WHERE active = 1 ORDER by tname ASC");
echo "<select data-placeholder='Spieler auswählen...' class='chosen-select' style='width:220px;' multiple tabindex='4' name='awayspieler[]' required>";
while ($row = mysql_fetch_array($select_query)) {
echo "<option value='".$row['id']."'>" .$row['tname']."</option>";
</option>";
}
echo "</select>";
问题是,如果已经为主队选择了一名球员,我无法检查客队选择。在客场球队中选择那些不属于主队的球员会很棒。
这怎么可能?
答案 0 :(得分:1)
一页的Javascript解决方案
选择家庭播放器后,您需要触发一个事件,将播放器从第二个下拉列表中排除。例如,您可以使用JavaScript执行此操作。
在您的选择中添加如下ID:
<select id='homeTeamPlayer'>
<select id='awayTeamPlayer'>
在您的第一个<select>
添加一个javascript方法onchange
,如下所示:
<select onchange="excludePlayer()">
此方法应在第二个下拉列表中禁用该选项:
function excludePlayer() {
var homeTeamPlayerId= document.getElementById("homeTeamPlayer").value
// Get all options within <select id='homeTeamPlayer'>...</select>
var op = document.getElementById("awayTeamPlayer").getElementsByTagName("option");
for (var i = 0; i < op.length; i++) {
// lowercase comparison for case-insensitivity
(op[i].value == homeTeamPlayerId)
? op[i].disabled = true
: op[i].disabled = false ;
}
}
(从此复制禁用代码:How can I disable an <option> in a <select> based on its value in JavaScript?)
您还应该为第二次下拉菜单实现此功能。
<html>
<head>
<script>
function excludePlayer() {
var homeTeamPlayerId= document.getElementById("homeTeamPlayer").value
// Get all options within <select id='homeTeamPlayer'>...</select>
var op = document.getElementById("awayTeamPlayer").getElementsByTagName("option");
for (var i = 0; i < op.length; i++) {
// lowercase comparison for case-insensitivity
(op[i].value == homeTeamPlayerId)
? op[i].disabled = true
: op[i].disabled = false ;
}
}
</script>
</head>
<body>
<select id='homeTeamPlayer' onchange="excludePlayer()">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
<select id='awayTeamPlayer'>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
</html>
&#13;
有两页的SQL解决方案
首先,你有一个下拉列表选择主队球员。 创建的HTML应如下所示:
<form method="post" action="page2.php">
<select data-placeholder='Spieler auswählen...' class='chosen-select' style='width:220px;' multiple tabindex='4' name='homespieler' required>
<option ...> ... </option>
<option ...> ... </option>
</select>
<input type=submit />
</form>
在第二页上,您现在可以获得所选家庭播放器的价值:$POST_['homespieler']
你可以在你的查询中这样做:
SELECT *
FROM $player_table_2016
WHERE active = 1
AND ID != $POST_['homespieler']
ORDER by name ASC
答案 1 :(得分:1)
您可以将ajax用于此类方案。
一旦用户选择主队的所有队员使用jQuerys .blur
事件并将所有id传递给php。
而且你可以使用查询
select * from table where id not in ($id)
其中$ id是通过POST或GET方法接收的值