Hello se

[Ajax]ajax로 데이터 전송후 안바뀜 본문

web

[Ajax]ajax로 데이터 전송후 안바뀜

soyamm 2023. 5. 15. 13:44
반응형

이번에 게시글에 대한 상태기능을 만들다가 새로고침을 해야 데이터가 변경되는 현상이 일어났다..

내가 알기로는 ajax사용하면 바로바로 변경된다는데...

저번에 ajax로 select변경하기를 했는데 이번에는 데이터 전송은 되었지만... 값이 바로 바뀌지 않았다...

 

그래서 어쩔수 없이 ajax코드에 

location.reload();

이 코드를 달아줬다

 

우선 [결과화면]

게시판에 접수 대기 작업중 완료 취소 버튼이 있는데 저걸 누르면 바로바로 데이터베이스에 저장되는 기능이다.

 

[view.html]

<div style="text-align:center;padding:15px">
    <a href="m_board_ok.php?ps_mode=state&ps_vote=0&ps_boid=<?=$bo_list[uid]?>&ps_db=adminbbs" target="target_frame1" class="bts fontsize13 <?= $bo_list['state_vote'] == 0 ? 'red' : 'black' ?>"  data-vote="0">접수</a>
    <a href="m_board_ok.php?ps_mode=state&ps_vote=1&ps_boid=<?=$bo_list[uid]?>&ps_db=adminbbs" target="target_frame1" class="bts fontsize13 <?= $bo_list['state_vote'] == 1 ? 'red' : 'black' ?>"  data-vote="1">대기</a>
    <a href="m_board_ok.php?ps_mode=state&ps_vote=2&ps_boid=<?=$bo_list[uid]?>&ps_db=adminbbs" target="target_frame1" class="bts fontsize13 <?= $bo_list['state_vote'] == 2 ? 'red' : 'black' ?>"  data-vote="2">작업중</a>
    <a href="m_board_ok.php?ps_mode=state&ps_vote=3&ps_boid=<?=$bo_list[uid]?>&ps_db=adminbbs" target="target_frame1" class="bts fontsize13 <?= $bo_list['state_vote'] == 3 ? 'red' : 'black' ?>"  data-vote="3">완료</a>
    <a href="m_board_ok.php?ps_mode=state&ps_vote=4&ps_boid=<?=$bo_list[uid]?>&ps_db=adminbbs" target="target_frame1" class="bts fontsize13 <?= $bo_list['state_vote'] == 4 ? 'red' : 'black' ?>"  data-vote="4">취소</a>
</div>


 <script>
    $(function() {
      $('a[data-vote]').on('click', function(e) {
        e.preventDefault();

        var vote = $(this).data('vote');
        var url = $(this).attr('href');
        var target = 'target_frame1';

        $.ajax({
          url: url,
          type: 'GET',
          data: {
            ps_mode: 'state',
            ps_vote: vote,
            ps_boid: '<?=$bo_list[uid]?>',
            ps_db: 'adminbbs'
          },
          success: function(data) {
            $('#' + target).html(data);
            location.reload(); // AJAX 요청이 완료되면 페이지를 새로고침합니다.
          },
          error: function(xhr, status, error) {
            console.log(error);
          }
        });
      });
    });
    </script>

a태그를 이용해 ajax로 m_board_ok데이터를 보낸다.

이 코드를 이용하면 바로 데이터값이 변경될 것이다.

 

특히 locoation.reload();를 빼고도 한번 해보고 안되면 저 코드를 넣어주면 될것이당 ㅠㅠㅠ

 

서버언어는 php씁니다!! 아마 그누보드에서도 적용가능할거에요!!

 

[m_board_ok.php]

if($ps_db == "adminbbs" and $ps_mode == "state"){
	$query = "update 테이블명 set state_vote = $ps_vote where uid = 게시글고유번호";
	hd_query($query);
	
}

이렇게 안써도 ajax로 보낸 데이터를 데이터베이스에 업데이트하는 코드를 작성하시면 됩니다!!

 

모두많이많이 봐주세용!!

반응형
Comments