0

我在使用数据库内容填充组合框时遇到了一些麻烦,具体取决于用户在另一个组合框中选择的内容。当我使用一对“盒子”时效果很好。国家 -> 玩家。但是当我在同一页面上添加多个COUNTRY->PLAYER时,我的所有玩家都会被第一个COUNTRY BOX选中。这是我的代码的快照,它是从这个网页示例创建的:

<script type="text/javascript">
    $(document).ready(function(){
        $(".country").change(function(){
            var id=$(this).val();
            var dataString = 'id='+ id;    
            $.ajax({
                type: "POST",
                url: "ajax-search.php",
                data: dataString,
                cache: false,
                success: function(html){
                    $(".player").html(html);
                    console.log(id);
                } 
            });        
        });
    });
</script>

   while ($row = mysql_fetch_array($result)) {
      $counter++;
         echo '<select class = "country" name="singleBetTeam[' . $counter . ']">';
         echo "<option selected = 'selected'> COUNRTY</option>";
            while ($row = mysql_fetch_array($result2)) {
               $data = $row['team_name'];
               echo '<option value="'.$data.'">'.$data.'</option>';
             }
             echo '</select><select name="singleBetStar[' . $counter . ']" class="player">';
          echo '<option selected="selected"> PLAYER </option></select>';
     }

问题是当我在第一个组合框中选择德国时,我会得到德国玩家的所有其他组合框。这取决于我在 javascript 中检查 class="player" 但我不知道如何创建此连接的事实?

在此处输入图像描述

4

1 回答 1

1

您应该只更新用户更改的组合框,而不是与player该类匹配的所有元素。您可以使用该context:选项$.ajax将更改的元素传递给回调。

$(document).ready(function() {
    $(".country").change(function() {
        var id=$(this).val();

        $.ajax ({
            type: "POST",
            url: "ajax-search.php",
            data: {id: id},
            cache: false,
            context: this;
            success: function(html) {
                $(this).next(".player").html(html);
                console.log(id);
            } 
        });

    });
});
于 2013-11-14T17:41:54.347 回答