2010-08-03 3 views

답변

2

기본 아이디어는 텍스트 영역이나 입력이있는 클라이언트 쪽 페이지를 가질 것이라는 것입니다. .click을 제출 버튼에 연결하면 .click은 .ajax를 통해 서버 측 스크립트를 호출합니다.

클라이언트 측 :

<script type="text/javascript"> 
    $(document).ready(
    $('#submit').click({ 
     $.ajax({ 
       type=POST, 
       data: "comment="+$("#comments").val(), 
       dataType: json, 
       url: 'somePage.php', 
       success: function(data) { 
        if(data.error){ 
         alert("server reported error"); 
        }else{ 

         $('#postedComments').append(data); 
        } 
       } 
       }); 


    }); 


}); 
</script> 
<div id="postedComments></div> 
<textarea id="comments"></textarea> 
<input type="submit" id="submit" value="Post Comment" /> 

서버 측 :

기본적으로
<?php 
    if(isset($_POST['comments'])){ 
     //perform Database insert of value $_POST['comments'] 
     if(<database error>){ 
      echo json_encode(array('error'=>'-1')); 
     }else{ 
      echo json_encode(array('success'=>'1')); 
     } 
    } 
?> 

클라이언트 클릭 제출, 서버 측 스크립트에 아약스의 게시물 "댓글". 그런 다음 스크립트는 요청을 처리하고 json 인코딩 오류 또는 성공을보고합니다. 즉 ajax 호출의 성공으로 서버 호출이 어떻게되었는지를 판별 할 수 있습니다. 아약스의 성공은 단순히 서버가 응답 한 것을 나타내는 성공이 아니므로 클라이언트 스크립트로 다시 보내서 서버가 오류 또는 성공 메시지로 응답했는지 확인하기 위해 일부 메시지를 인코딩 할 수 있습니다.

+0

고마워요! 사용하지 않을 경우 ---- Ajax/Jquery 방식 만있는 것이 아닙니까? 아직 PHP를 배우지 않아서 PHP 사용을 피하려고합니다. – omnix

+0

jquery와 함께이 작업을 수행 할 수 있지만 브라우저를 닫고 새 세션을 시작하면 데이터가 지속되지 않습니다. 또한 클라이언트 A가이 사이트로 이동하여 주석을 게시하면 클라이언트 B는 클라이언트 A의 주석을 보지 않고 클라이언트 B의 주석은 클라이언트 A가 볼 수 없습니다. 따라서 데이터를 유지할 수있는 방법이 필요합니다. 따라서 서버 측 코드가 표시됩니다 . jquery 클라이언트 측만 아약스 호출을하지 않고도 게시 된 기능과 동일합니다. 간단한 do $ ("# submit"). (function() {$ ("# postedComments")를 클릭하십시오 ($ ("# comments"). – Chris

+0

크리스, 당신 큰 도움을 주셔서 감사합니다! – omnix

0

서버 입력 상자 내용이 post이고 서버에서 성공 메시지를 받으면 append 주석으로 처리해야합니다.

+0

좋아, jQuery에서 가이드를 이해하고 살펴 본다. 더 많은 코드 예제를 사용할 수 있습니까? – omnix

+0

@kawoki 아래 코드에 대한 내 코멘트를 참조하십시오 :-) – Chris

0

저는 WordPress의 것과 비슷한 jQuery 구동 아약스 코멘트 시스템을 만들었습니다. 생성/삭제 동작은 모두 AJAX로 구동됩니다.

주석을 만들기위한 $ .post() 작업과 주석 삭제를위한 $ .get() 작업을 수작업으로 수행했습니다.

관련 문제