Php 如何通过webform使mysql中的数据只可选择一次?

Php 如何通过webform使mysql中的数据只可选择一次?,php,mysql,html,Php,Mysql,Html,我正在构建一个简单的web表单或绑定到!显示足球队的列表。此团队列表位于单列mysql表中。如何使团队在web表单上被选中时,不能在表单上再次被选中?i、 e.确保他们不会被意外地选择相互玩,或同时玩两次。到目前为止,我的代码如下,似乎运行良好。它包括其他主队和客队相同代码的几个其他迭代。非常感谢您的指点/帮助 <select name="hometeam"> <?php $query = "SELECT * FROM teams order by teamname"; $r

我正在构建一个简单的web表单或绑定到!显示足球队的列表。此团队列表位于单列mysql表中。如何使团队在web表单上被选中时,不能在表单上再次被选中?i、 e.确保他们不会被意外地选择相互玩,或同时玩两次。到目前为止,我的代码如下,似乎运行良好。它包括其他主队和客队相同代码的几个其他迭代。非常感谢您的指点/帮助

<select name="hometeam">
<?php
$query = "SELECT * FROM teams order by teamname";

$result = mysql_query($query);

while($row = mysql_fetch_array($result))
{
  echo "<option value=\"".$row['teamname']."\">".$row['teamname']."</option>\n  ";
}

?>
</select>
<select name="hometeam2">
<?php
$query = "SELECT * FROM teams order by teamname";

$result = mysql_query($query);

while($row = mysql_fetch_array($result))
{
  echo "<option value=\"".$row['teamname']."\">".$row['teamname']."</option>\n  ";
}

?>
</select>

I方法:一个可能的简单解决方案是通过javascript。也就是说,一旦在两个组合框中进行了选择,那么在将表单提交给服务器之前,您可以比较这两个值,如果发现它们相同,那么您可以提醒用户这一点

另外,尽管您使用javascript进行验证,但还是建议在服务器端重新验证以避免任何黑客攻击。希望这有帮助

II方法:如果您不想在另一个下拉列表中显示在一个下拉列表中选择的团队,那么为此,您必须以以下方式使用Ajax:

在一个下拉列表中选择一个值时—触发ajax请求—将所选值从下拉列表发送到服务器。现在,在服务器上修改查询以选择除此值之外的所有值,然后将这些值发送回客户端。这样,用户将能够看到除所选值之外的值


希望这能有所帮助。

jQuery会让这变得非常简单:

<script type="text/javascript">
$(document).ready(function() {
    $("select[name=hometeam]").change(function() {
        if ( $(this).val() == $("select[name=hometeam2]").val() ) {
            alert("This team cannot play itself!");
        }
    });

    $("select[name=hometeam2]").change(function() {
        if ( $(this).val() == $("select[name=hometeam]").val() ) {
            alert("This team cannot play itself!");
        }
    });
});
</script>

这是伟大的,正如所描述的那样,尽管我希望有一种方法甚至不给用户选择两次团队的选择权。我喜欢方法2。这更像是我在想的。现在查找Ajax教程: