У меня есть таблица данных, заполненная из базы данных MySQL через PHP. Первый столбец является функцией флажка, поэтому при щелчке по значку булавки в любой конкретной строке база данных обновляется до «y» или «n» для этого поля. Затем я могу отсортировать этот столбец, перенеся все отмеченные строки в верхнюю часть таблицы. Так как мой стол довольно большой, я решил сделать это через 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, поэтому любая помощь будет принята с благодарностью.
Большое спасибо,
Kris