2017-11-28 3 views
1

jQueryとPHPを使用してAJAXからJSON応答を呼び出す際に重複値を取得しています。コードは完全に実行されていますが、ドロップダウンリストを選択している間に重複したエントリを与えています。 dbからの最初の1つのコールは、2つ目のドロップダウンリストにあり、最初のものに基づいて、値は2番目のものに伝播されます。 2番目のスクリプトを選択すると、jQueryを使用してAJAXからのJSON応答を返すJavaスクリプトが呼び出されますが、重複した値になります。jqueryがテーブルに重複値を追加しないようにする

$(document).ready(function(){ 
 
\t $("#employee").change(function() {  
 
\t \t //var id = $(this).find(":selected").val(); 
 
\t \t //var dataString = 'empid='+ id; 
 
\t \t var b_code = $(this).find(":selected").val(); 
 
\t \t var dataString = 'empid='+ b_code; 
 
    $.ajax({ 
 
     url: 'getData.php', 
 
     type: 'get', 
 
     dataType: 'JSON', 
 
\t \t data: dataString, 
 
     success: function(response){ 
 
      var len = response.length; 
 
      for(var i=0; i<len; i++){ 
 
       var id = response[i].id; 
 
       var X1 = response[i].X1; 
 
       var X2 = response[i].X2; 
 
       var X3 = response[i].X3; 
 
\t \t \t \t   var X4 = response[i].X4; 
 
\t \t \t \t   var X5 = response[i].X5; 
 
\t \t \t \t 
 
       var tr_str = "<tr>" + 
 
        "<td align='center'>" + (i+1) + "</td>" + 
 
        "<td align='center'>" + X1 + "</td>" + 
 
        "<td align='center'>" + X2 + "</td>" + 
 
        "<td align='center'>" + X3+ "</td>" + 
 
\t \t \t \t   \t "<td align='center'>" + X4 + "</td>" + 
 
\t \t \t \t \t   "<td align='center'>" + X5+ "</td>" + 
 
        "</tr>"; 
 
\t \t \t \t \t 
 
       $("#userTable").append(tr_str); 
 
      } 
 
\t \t \t } 
 
\t \t }) 
 
    }); 
 
});
<!DOCTYPE html> 
 
<html> 
 

 
<head> 
 
    <title>TSP</title> 
 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
 
    <!--<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" type="text/css" /> --> 
 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script> 
 
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" type="text/javascript"></script> 
 
<link rel="stylesheet" href="csss/bootstrap.min.css"> 
 
<link rel="stylesheet" href="csss/style1.css"> 
 
    <!--</style> --> 
 
<script type="text/javascript"> 
 
      $(document).ready(function(){   \t 
 
      \t $("#district").change(function(){ 
 
        var district=$("#district").val(); 
 
      \t  \t  $.ajax({ 
 
      \t  \t  \t type:"post", 
 
      \t  \t  \t url:"getblock.php", 
 
      \t  \t  \t data:"district="+district, 
 
      \t  \t  \t success:function(data){ 
 
           $("#employee").html(data); 
 
      \t  \t  \t } 
 
      \t  \t  }); 
 
      \t }); 
 
      }); 
 
     </script> 
 
</head> 
 

 
<body> 
 
    <div class="container" style="margin-top: 50px;"> 
 
    <div class="col-sm-6 col-sm-offset-3"> 
 
     <div class="panel panel-primary"> 
 
     <div class="panel-heading"> 
 
      <h3 class="panel-title"><center>Select District & Block</center></h3> 
 
     </div> 
 
     <div class="panel-body"> 
 
\t \t District : 
 
     <select name="district" id="district"> 
 
      <option>-select your district-</option> 
 
    \t  <?php 
 
    \t  include "db_connect.php"; 
 
     //$result=mysqli_query("SELECT DTCode,DTName from district order by DTName"); 
 
\t \t $sql = "SELECT DTCode,DTName from district order by DTName"; 
 
\t \t $resultset = mysqli_query($conn, $sql) or die("database error:". mysqli_error($conn)); 
 
     while($district = mysqli_fetch_assoc($resultset)){ 
 
     echo "<option value=$district[DTCode]>$district[DTName]</option>"; 
 
    \t  } ?> 
 
    \t  </select> 
 
    
 
    \t  Block : 
 
    \t  <select name="block" id="employee"> 
 
    \t  \t <option>-select your block-</option> 
 
\t \t </select> 
 
     </div> 
 
     </div> 
 
    </div> 
 
    </div> 
 
    
 
\t 
 
<div class="container"> 
 
    <table id="userTable" border="2" > 
 
     <tr> 
 
     <th width="5%">S.no</th> 
 
     <th width="10%">X1</th> 
 
     <th width="10%">X2</th> 
 
     <th width="10%">X3</th> 
 
\t <th width="10%">X4</th> 
 
\t <th width="6%">X5</th> 
 
     </tr> 
 
    </table> 
 
</div> 
 

 
</body> 
 

 
</html> 
 
<script type="text/javascript" src="script/getDatan.js"></script>

+0

エントリIDまたはエントリ自体をリストに追加して、各繰り返しチェックで現在のものがその辞書/リスト内にあるかどうかを確認することができます。 –

+0

どうすればいいですか? –

+0

私の答えをチェック –

答えて

0

私は私のコメントで述べたように、あなたはあなたが合格したIDを格納する配列を使用することができ、かつ各繰り返しで、あなたが重複1を持っているかどうかを確認することができます。ここで

は一例です:

var testArray = []; 

var len = response.length; 
    for(var i=0; i<len; i++){ 
     if($.inArray(response[i].id, testArray)){ // check whether you have went over it already 
      continue; 
     } 
     testArray.push(response[i].id); // add the current id to the list and thats how you will avoid duplicates, assuming that the IDs are duplicate 
     var id = response[i].id; 
     var X1 = response[i].X1; 
     var X2 = response[i].X2; 
     var X3 = response[i].X3; 
     var X4 = response[i].X4; 
     var X5 = response[i].X5; 

     var tr_str = "<tr>" + 
       "<td align='center'>" + (i+1) + "</td>" + 
       "<td align='center'>" + X1 + "</td>" + 
       "<td align='center'>" + X2 + "</td>" + 
       "<td align='center'>" + X3+ "</td>" + 
         "<td align='center'>" + X4 + "</td>" + 
          "<td align='center'>" + X5+ "</td>" + 
       "</tr>"; 

     $("#userTable").append(tr_str); 

は、この情報がお役に立てば幸い!

関連する問題