2014-03-06 60 views
0

我有一個由PHP查詢從MySQL表生成的HTML表。由jquery.ajax更改特定的html錶行

<table> 
    <tr> 
     <th>Sl</th> 
     <th>ID</th> 
     <th>Article Name</th> 
     <th>Publish Status</th> 
    </tr> 
    <?php 
     $i = 1; 
     foreach ($obj->showAllFromTable('pattern') as $pattern) { 
     extract($pattern); 
     ?> 
    <tr> 
     <td><?php echo $i++; ?></td> 
     <td><?php echo $id; ?></td> 
     <td><?php echo $pattern_name; ?></td> 
     <td id="publish_<?php echo $id; ?>" class="status_pattern"> 
     <?php echo $publish; ?> 
     </td> 
    </tr> 
    <?php 
     }   
     ?> 
</table> 

我想通過單擊相應文章行的「發佈」單元來更改任何文章的狀態。我想使用jquery的AJAX方法用於此目的,如圖中的以下內容:

<script type="text/javascript"> 
$(document).ready(function(){ 
$('.status_pattern').click(function(){ 
    var thisid = $(this).attr('id'); 

    $.ajax({ 
     url: "status_change_pattern.php", 
     data: { 
      id: thisid 
     }, 
     success: function (response) { 
      alert(response); 
     } 
    }); 
}); 
}); 
</script> 

在「成功」塊,而不是「警報」,我想創建一個功能改變的文本我點擊的特定單元格。 「status_change_pattern.php」只有一個文字「嘿嘿」。 任何人都可以幫忙嗎?請。 謝謝。

+1

而不是文本嘗試'HTML()' – krishna

+0

什麼是你'status_change_pattern.php'的代碼? –

+0

@SatishSharma:這只是一個文本「嘿嘿」。我只是想將「發佈」單元格的文本更改爲「嘿嘿」。我的問題是,我似乎無法定位特定單元格來更改其文本。希望我清楚。 – Placid

回答

0

您必須使用closure來保存該ID。

<script type="text/javascript"> 
$(document).ready(function(){ 
    $('.status_pattern').click(function(){ 
     var thisid = $(this).attr('id'); 

     $.ajax({ 
      url: "status_change_pattern.php", 
      data: { 
       id: thisid 
      }, 
      success: function (id) { 
       return function (response) { 
        $("#" + id).html(response); 
       } 
      }(thisid) 
     }); 
    }); 
}); 
</script> 
+0

我試過了你的建議。但它不工作。你的代碼存在問題,在最後(thisid)之後。有了這個代碼,即使其他jQuery代碼停止工作。刪除;使其他代碼工作。但是有或沒有;主要目的沒有實現。 – Placid

+0

好的,我刪除了';',但是你能否提醒'id'。就在$(id)聲明之上 – SajithNair

+0

是的!警報ID正在顯示ids !!。但$(id).html(響應)不起作用。 – Placid

0

你需要寫,

success: function (response) { 
      $(thisid).html(response); 
     } 

這裏響應,你需要得到新的狀態。

+0

不,我不工作。問題是我似乎無法定位特定的單元格來改變它的文本。 – Placid

+0

你是否在提醒(回覆)中收到'嘿嘿'? –

+0

是的,我收到了'嘿嘿'的警報(回覆) – Placid

0

由SajithNair提供的解決方案的工作原理。感謝SajithNair。但是也可以在不使用閉包的情況下完成。如下圖所示:

$('.status_pattern').click(function() { 
     var thisid = $(this).attr('id'); 

     $.ajax({ 
      url : "status_change_pattern.php", 
      data : { 
       id : thisid 
      }, 
      success : function(response) { 
       $('#' + thisid).html(response); 
      } 
     }); 
    }); 

感謝