2013-09-25 32 views
1

我有3列,列值不斷從數據庫動態變化。 所有行在最後一列都有刷新按鈕。如何重新加載只有一行

當我點擊刷新按鈕時會發生什麼,只有那個特定的行纔會刷新。

但是,這並非如此。當我點擊第一行刷新按鈕時,它會刷新並顯示一個警報值,但當我單擊除第一行以外的其他刷新按鈕時,它們不會被刷新。他們甚至沒有在警報中顯示價值。

這裏是代碼,我已經使用:

AJAX,JQuery的

<script type="text/javascript"> 
    var id; 

    function refreshRecord(value) { 
     id = value; 
     alert("id is " + id); 
    } 

    $(document).ready(function() { 
     $(this).("#refresh").click(function() { 
      var fileId = id; 
      alert("ajax id is " + id); 
      $.ajax({ 
       type: "post", 
       url: "checkStatusAndNumRecs", 
       data: { 
        fileId: fileId 
       }, 
       success: function(data) { 
        $("#div1").html(data); 
       }, 
       error: function(data) { 
        $("#div1").html("It was a failure !!!"); 
       } 
      }); 
     }); 
    }); 
</script> 

HTML代碼

<table border="1"> 
    <tr> 
     <td>2</td> 
     <td>1</td> 
     <td>3</td> 
     <td> 
      <input type="radio" name="submit" value="submit" onclick="refreshRecord(this.value)" id="refresh"> 
     </td> 
    </tr> 
    <tr> 
     <td>7</td> 
     <td>9</td> 
     <td>7</td> 
     <td> 
      <input type="radio" name="submit" value="submit" onclick="refreshRecord(this.value)" id="refresh"> 
     </td> 
    </tr> 
    <tr> 
     <td>3</td> 
     <td>4</td> 
     <td>6</td> 
     <td> 
      <input type="radio" name="submit" value="submit" onclick="refreshRecord(this.value)" id="refresh"> 
     </td> 
    </tr> 
    <tr> 
     <td>9</td> 
     <td>6</td> 
     <td>5</td> 
     <td> 
      <input type="radio" name="submit" value="submit" onclick="refreshRecord(this.value)" id="refresh"> 
     </td> 
    </tr> 
</table> 
+0

我在代碼中看不到任何按鈕,並且沒有#'refresh'的元素。請擴展您的代碼與所有相關的部分。 – Raidri

+0

@Raidri我編輯了這篇文章。 – MintY

回答

2

你有相同ID的多個單選按鈕。這是無效的HTML。使用類,而不是像

<input type="radio" name="submit" ... class="refresh"> 

,改變你的JavaScript來

$("input.refresh").click(function() { 

而且你不應該使用同一事件的兩個不同的onclick事件(我甚至不相信他們會在正確的順序,可以是隨機的。)
您可以從您的JavaScript和this.value$("input.refresh").click(function() { ... })刪除您的HTML onclick="refreshRecord(this.value)"refreshRecord和替換功能id

+0

謝謝Raidri,以及如何在我使用而不是輸入類型的情況下使用? – MintY

+0

用$(「a.refresh」)替換'$(「input.refresh」)''。你還需要做的是將行的id/fileid放在刷新按鈕/鏈接中,這樣你的ajax調用就有了id。在第一個代碼中,所有按鈕上都有相同的值'submit'。如果你使用鏈接,在數據屬性中加入'data-fileid =「1」',並在ajax調用中使用'var fileId = $(this).data('fileid');'。 – Raidri

+0

這是一個[小提琴](http://jsfiddle.net/9z2Hz/)的變化。 – Raidri