1
我有一个数据表从MySQL数据库通过PHP填充。第一列是一个标志特征,因此当任何特定行上的图钉图标被点击时,数据库被更新为'y'或'n'。然后,我可以对此列进行排序,将我标记的所有行都放到表格顶部。由于我的表格很大,我决定通过Ajax来完成。但是,它只适用于第一次通话,然后变为非活动状态。第一次请求后,数据库也不会更新。Ajax调用只更新一次
这里是HTML/PHP。
<td align="center" id="pin_record">
<?php // Flag Column
if ($row['flag'] == 'n'){ ?>
<a class="flag_image" href="list_all_quotes.php?id=<?php echo $row['quotes_id'].'_y'; ?>">
<img src="../images/flag_off.gif" border="0" width="17" height="17" alt="Flag Off">
<?php } elseif ($row['flag'] == 'y'){ ?>
<a class="flag_image" href="list_all_quotes.php?id=<?php echo $row['quotes_id'].'_n'; ?>">
<img src="../images/flag_on.gif" border="0" width="17" height="17" alt="Flag On">
<?php } ?>
</a>
</td>
,这里是jQuery的
function ajax_init()
{
$('#pin_record a:first-child').on("click",(flag_record));
}
function flag_record()
{
var id_pin = this.href.replace(/.*=/,'');
var id_array = id_pin.split("_"); // split the quote id and pin
var id = id_array[0];
var pin = id_array[1];
this.id = 'flag_link_'+id;
$.getJSON('deletequote.php?ajax=true&id='+id+'&pin='+pin,set_flag);
return false;
}
function set_flag(data)
{
if(!data.success)return alert(data.serverMessage);
var href = '<a class="flag_image" href="list_all_quotes.php?id='+data.id+'_'+data.pin+'">';
$('#flag_link_'+data.id)
.replaceWith(href+data.flagimg);
}
$(document).ready(ajax_init);
我很新的使用Ajax所以任何帮助将不胜感激。
非常感谢, 克里斯
您好,感谢我已经尝试和测试,但这没有工作的想法。无论如何,我已经把它留在原地。在第一个Ajax调用进一步点击同一个链接后,完成一个完整的服务器请求,并完全绕过ajax代码。 – 2012-01-05 09:58:16
我在这里错过了另一个解决方案吗? – 2012-01-06 09:04:29
加载firefox +萤火虫并打开NET面板。你可以看到你的请求发生了什么。这可能是服务器响应问题。 – 2012-01-06 14:45:51