我有一个从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个按钮。
status.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(); }
答案 0 :(得分:1)
虽然您可能希望向用户显示某种反馈,但实现此目的的最简单方法是:
$('#tableid a').click(function(){
event.preventDefault();
var href = $(this).attr('href');
$.get( href );
})
如果html表格有id =&#39; tableid&#39;。
这样做会停止跟踪链接,然后抓取href属性,并通过ajax执行get请求。
您可能想要指出成功/失败等,但没有看到您的状态。我不能详细说明
每条评论编辑:从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 );
});
});
ý
答案 1 :(得分: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;
});
});