2012-01-04 4 views
1

PHP를 통해 MySQL 데이터베이스에서 데이터 테이블을 채 웁니다. 첫 번째 열은 플래그 기능이므로 특정 행의 핀 아이콘을 클릭하면이 필드에 대해 데이터베이스가 '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> 

내가 Ajax를 사용하여 아주 새로운하므로, 어떠한 도움을 주시면 감사하겠습니다 오전 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); 

입니다.

많은 감사, 크리스

답변

2

당신의 요청이 캐시되고있다. 고유 한 URL을 사용하여 캐시를 해제하십시오.

'deletequote.php?ajax=true&id='+id+'&pin='+pin,set_flag+"&now="+new Date() 
+0

안녕하세요, 시도하고 테스트 한 아이디어 주셔서 감사하지만이 작동하지 않습니다. 어쨌든 나는 그것을 자리에 남겨 두었습니다. 첫 번째 아약스 호출 이후 동일한 링크를 계속 클릭하면 완전한 서버 요청을 수행하고 아약스 코드를 우회합니다. –

+0

여기에 누락 된 다른 해결책이 있습니까? –

+0

firefox + firebug를로드하고 NET 패널을 엽니 다. 당신은 당신의 요청으로 무슨 일이 일어나고 있는지 알 수 있습니다. 서버 응답 문제 일 수 있습니다. –