单人表-两个团队下拉列表-如何避免双人(mysql、php、ajax)

单人表-两个团队下拉列表-如何避免双人(mysql、php、ajax),php,mysql,dropdown,Php,Mysql,Dropdown,我有一张球员表,所有球员都存储在那里。 什么时候我会选择主队和客队的球员。我在player表上有两个不同的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-selec

我有一张球员表,所有球员都存储在那里。 什么时候我会选择主队和客队的球员。我在player表上有两个不同的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>";      
?>

一页Javascript解决方案

选择主玩家后,您需要触发一个事件,将该玩家从第二个下拉列表中排除。例如,您可以使用JavaScript实现这一点

在您的选择中,添加如下ID:

<select id='homeTeamPlayer'>
<select id='awayTeamPlayer'>
<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 ;
    }
}
函数excludePlayer(){
var homeTeamPlayerId=document.getElementById(“homeTeamPlayer”).value
//获取所有选项在。。。
var op=document.getElementById(“awayTemplayer”).getElementsByTagName(“选项”);
对于(变量i=0;i
(从此处复制了禁用代码:)

您还应该在第二个下拉列表中实现这一点


函数excludePlayer(){
var homeTeamPlayerId=document.getElementById(“homeTeamPlayer”).value
//获取所有选项在。。。
var op=document.getElementById(“awayTemplayer”).getElementsByTagName(“选项”);
对于(变量i=0;i
您可以在这种情况下使用ajax。 一旦用户为主队选择了所有球员,使用jQuerys
.blur
事件并将所有id传递给php。 然后,您可以使用查询
select*from table where id not in($id)
where$id是通过POST或GET方法收到的值

您的查询完全相同。您需要向我们显示您的玩家表的列才能得到一个好的答案。您想在第二个下拉列表中排除第一个玩家的选择,对吗?@blckbird:是的,我想在第二个下拉列表中排除第一个玩家的选择。您的查询将返回0results@blckbird:谢谢你的支持和想法。但是我如何在客场团队sql查询中实现/集成JS disable部分呢?您不能在同一个页面上这样做。因为在启动sql时,您不知道用户将做出哪个选择。因此,我建议只需禁用相应的
@blckbird:再次感谢您的回答。我试图运行javascript单页版本,但它不起作用。我
ve在主体中加入了js函数,还命名了select id并粘贴到onChange中。仍然可以为awayTeam选择已经被选为主队的球员。谢谢你的支持。但是一页的javascript版本对我来说仍然不起作用(控制台显示:ReferenceError:homeTeamPlayerId未定义(op[i]。值==homeTeamPlayerId)你能分享更多详细信息吗?这个解决方案应该如何实施?谢谢详细信息真的很有用,你完全正确。我打赌这就是为什么人们在你的问题上留下评论,要求你对问题本身更清楚、更具信息性
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 ;
    }
}