Обновление Ajax только один раз - PullRequest
1 голос
/ 04 января 2012

У меня есть таблица данных, заполненная из базы данных 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

1 Ответ

2 голосов
/ 04 января 2012

Ваш запрос кэшируется.Разбейте кеш, используя уникальный URL:

'deletequote.php?ajax=true&id='+id+'&pin='+pin,set_flag+"&now="+new Date()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...