0

我有一个从 MySQL 填充的表,我试图通过单击一个按钮来更新值,但我不确定从哪里开始。

我刚刚进入 Jquery / AJAX,还没有真正弄清楚,所以不要对我太苛刻。

在我的示例中,我有一个如下所示的 HTML 表:

ID   Status      Set Status
1    Pending     Yes / No
2    Pending     Yes / No
3    Pending     Yes / No
4    Pending     Yes / No
5    Pending     Yes / No

现在,当我单击 ID 3 是时,ID 3应将 MySQL 条目更新为Yes

我的问题是,我如何找出Yes / No点击了哪一行?如何通过 AJAX 将其传递给处理脚本?

我的Yes / No链接附有条目的 ID,如下所示:

<a href="status.php?set=yes&id=3">

我认为 PHP 部分很好,我的问题是获取正确的数据。

//编辑,这是表格:

<table class="table table-striped table-bordered table-hover datatable">
       <thead>
         <tr>
           <th><div class="checkbox"><input type="checkbox" /></div></th>
           <th>ID</th>
           <th>Status</th>
           <th>Set Status</th>
         </tr>
       </thead>
<tbody>
<?php 
      $query=mysql_query( "select * from test");
      if(mysql_num_rows($query)>0){
      while($data=mysql_fetch_array($query,1)){
?>
<tr>
  <td><div class="checkbox"><input type="checkbox" /></div></td> 
  <td><?php echo $data['id']; ?></td>
  <td>
  <?php 
  if($data['status'] == 'pending') 
  { 
       echo "<span class=\"label label-warning\">Pending</span>";
  } 
  elseif($data['status'] == 'yes') 
  { 
      echo "<span class=\"label label-success\">Yes</span>";
  } 
  elseif($data['status'] == 'no') 
  { 
    echo "<span class=\"label label-danger\">No</span>";
  } 
  ?></td>
  <td>
  <?php 
  if($data['status'] == 'pending') 
  { 
      echo "<a href=\"" . "status?set=yes&id=" . $data['id'] ."\" class=\"btn btn-success btn-xs\"><i class=\"icon-ok-sign\"></i> Yes</a>" . " <a href=\"" . "status?set=no&id=" . $data['id'] ."\" class=\"btn btn-danger btn-xs\"><i class=\"icon-remove\"></i>No</a>"; 
   } ?>
   </td>
   </tr>
   <?php 
          }
     } ?>
   </tbody>
   </table>

/// 编辑 2

利用 user574632 的回答,我得到了简单的 AJAX GET 来更新表格,现在我试图将一些反馈反馈给用户并隐藏 2 个按钮。

状态.php

$id = $_GET['id'];
$status = $_GET['set'];

if($_GET['set'] == 'yes') {
$result = mysql_query("UPDATE test SET status='yes' WHERE id='$id'") 
or die(mysql_error()); 
echo "Status Changed to Yes";
exit();  }

if($_GET['set'] == 'no') {
$result = mysql_query("UPDATE test SET status='no' WHERE id='$id'") 
or die(mysql_error()); 
echo "Status Changed to No";
exit();  }
4

2 回答 2

1

虽然您可能想向用户显示某种反馈,但实现这一目标的最简单方法如下:

$('#tableid a').click(function(){
    event.preventDefault();
    var href = $(this).attr('href');
    $.get( href );
})

前提是 html 表有一个 id='tableid'。

这样做是停止被跟踪的链接,然后获取 href 属性,并通过 ajax 执行获取请求。

您可能想要指示成功/失败等,但没有看到您的 status.php 我无法详细说明

编辑每条评论:从 php 文件中取回数据:

 $('#tableid a').click(function(){
    event.preventDefault();
    var href = $(this).attr('href');

    $.get( href, function( data ) {
        //append data to a div, hide buttons etc.
        //alert used as example
        alert( data );
    });
 });

于 2013-09-20T11:23:15.610 回答
0

为您的锚标签添加了类,因此它看起来像<a class="mylink" href="status.php?set=yes&id=3">

现在添加一个 jquery 以在单击链接时启动 ajax 请求。这就是你的 jquery 应该是的样子。

jQuery(document).ready(function($){
    $(".mylink").click(function(e) {
        $.post($(this).attr(),{},function(res){
            console.log(res);
        });
        return false;
    });
});
于 2013-09-20T11:21:10.663 回答