2013-11-14 39 views
0

我在填充數據庫內容的組合框時遇到了一些麻煩,這取決於用戶在另一個組合框中選擇的內容。 當我使用一對「盒子」時它工作正常。 COUNTRY - > PLAYER。但是當我在同一頁面上添加幾個COUNTRY-> PLAYER時,我的所有玩家都會通過第一個COUNTRY BOX得到選擇。 這裏是我的代碼卡,它是從this webpage example創建:使我的組合框在PHP和JQuery中獨立

<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」的事實,但我不知道如何創建此連接?

enter image description here

+1

'$(「。player」)。html(html)'更新_all_與該類的元素。您需要使用DOM遍歷方法來選擇與他們所更改的國家/地區框相鄰的那個。 – Barmar

回答

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); 
      } 
     }); 

    }); 
}); 
+0

很快,謝謝!這很容易:) – Rocksteady