2012-01-04 2 views
1

У меня есть таблица данных, заполненная из базы данных MySQL через PHP. Первый столбец - это функция флага, поэтому при щелчке по значку булавки в любой конкретной строке база данных обновляется до «y» или «n» для этого поля. Затем я могу сортировать по этому столбцу, выводя все отмеченные строки в верхнюю часть таблицы. Поскольку мой стол довольно большой, я решил сделать это через Ajax. Однако он работает только для первого вызова, а затем становится неактивным. База данных не обновляется после первого запроса.Ajax call only update once

вот 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

ответ

2

запрос Вы в настоящее время кэшируются. Разбивайте кеш с помощью уникального URL-адреса:

+0

Привет, Спасибо за идею, которую я пробовал и тестировал, но это не сработало. Я все равно оставил его на месте. После первого вызова ajax дальнейший клик по той же ссылке выполняет полный запрос сервера и вообще обходит код ajax. –

+0

Есть ли другое решение, которое я здесь отсутствует? –

+0

Загрузите firefox + firebug и откройте панель NET. Вы можете видеть, что происходит с вашими запросами. Это может быть проблема с ответом на сервер. –