通过jquery.ajax更改特定的html表行

时间:2014-03-06 06:20:56

标签: php jquery mysql

我有一个PHP表,它是从MySQL表中查询的。

<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>

在“成功”块中,我想创建一个功能来更改我单击的特定单元格的文本,而不是“alert”。 “status_change_pattern.php”只有一个文本“嘿嘿”。 有人可以帮忙吗?请。 感谢。

3 个答案:

答案 0 :(得分:0)

你需要写,

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

作为回应,您需要获得新状态。

答案 1 :(得分: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>

答案 2 :(得分: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);
            }
        });
    });

由于