개발 Q&A

제목 댓글 만들기 질문합니다.
글쓴이 초보프로그래머 작성시각 2014/08/02 17:09:21
댓글 : 8 추천 : 0 스크랩 : 0 조회수 : 12484   RSS
제이쿼리 에이작스로 만들고 있습니다.

스크립트 부분

function load_reply(v_cur_page)
{
    var load_reply_option =  {
        ajax_url : "/race_reply/racereply_list",
        ajax_data : "RaceIndex=" + $("#RaceIndex").val(),
        ajax_html : '<tr>'+
                    '<td>#_RRName#</td>'+
                    '<td>#_RRContents#</td>'+
                    '<td>#_RegDate#</td>'+
                    '</tr>',
        ajax_non_html : "<tr><td colspan='5' style='text-align:center'> 데이터가 없습니다. </td></tr>",                
        total_count_column : "total_rows",
        page_container : "#racereply_link_container",
        page_size : 5,
        ajax_navi_click_function : function(){
                $("#racereplyCurPage").val(this);
        }
    };
    
    if(v_cur_page > 0 )
        load_reply_option["current_page"] = v_cur_page;
    
    $("#racereply_container").paging(load_reply_option);
}



뷰 부분 
<form  method="post" id="frm" name="frm">
          <input type="hidden" name="racereplyCurPage" id="racereplyCurPage" value="1" />    
          <div>
            이름: <input type="text" id="RRName" name="RRName" value="" size="10"> <br/>
            비번: <input type="password" id="RRPassword" name="RRPassword" value="" size="10"><br/>
            내용: <textarea id="RRContents" name="RRContents" value="" size="30" cols="20" rows="2"></textarea><br/>
            <div>
                <input type="button" value="등록" onclick="add_reply()" />
            </div>
        </div>
        </form>  
    
    <tbody id="racereply_container"></tbody>

컨트롤러 

    public function index()
    {
        redirect("/race_reply/racereply_list");
    }

    
    public function racereply_list()
    {
        $RaceIndex = $this -> input -> get_post("RaceIndex");

        $this->load->model("front/racereplymodel");

        $config["total_rows"] = $this->racereplymodel->record_count();
        $config["per_page"]  = 5;
        
        $this->pagination->initialize($config);
        
        $data["links"] = $this->pagination->create_links();
        
        $data["total_rows"] = $config["total_rows"];

        $data_list = $this->recereplymodel->tbl_race_reply_list($this->pagination->per_page, $this->pagination->get_Limit(),$RaceIndex);
        
        $data["list"] = $data_list;
        
        $data["page"] =  $this->pagination->cur_page;

        $data["num_link"] = $this->pagination->get_Links();

        echo json_encode($data);
    exit;
    }
}

다른 페이지에서는 제 사수님이 저런식으로 해서 댓글목록을 에이작스로 불러오더라구요
그런데 저는 잘 안됩니다. 모르겠습니다. 도움좀 부탁드립니다.
 다음글 정규식을 이용하여 특정 이미지 추출하려면... (2)
 이전글 해당 레이아웃 클릭시 그 레이아웃만 나오게 하고 싶은데... (1)

댓글

변종원(웅파) / 2014/08/02 20:53:17 / 추천 0
위 소스대로라면 안되는게 당연하겠죠.

에러가 날 것이고 그 에러에 답이 포함되어 있을겁니다.

폼에서 호출한 자바스크립트 함수명이 틀립니다.
초보프로그래머 / 2014/08/02 20:57:55 / 추천 0
쓰기 함수는아직안만들어서 안되겠지만,, 저거 댓글 불러오는 것도 안되는거에요?
변종원(웅파) / 2014/08/02 22:17:30 / 추천 0
^^; 위 소스로 어떻게 판단을 할까요? 

크롬이던 파이어폭스던 개발자도구, 파이어버그 등으로 어디서 무슨 에러가 나는지부터 파악하세요.

디버깅의 시작은 에러메세지부터 시작을 합니다.

사수 있으시면 깨지더라도 사수한테 물어보세요.
변종원(웅파) / 2014/08/02 22:43:07 / 추천 0
뷰에서 자바스크립트의 load_reply 함수를 실행하는 부분이 있어야 데이터를 가져와서 
댓글을 보여줍니다. 
위 소스에는 없죠. 
소스를 올리시려면 관련 부분을 전부 올려야 답변을 합니다.

제 경우 처음에 게시판 상세보기 페이지 들어갔을때의 댓글은 컨트롤러에서 모델을 통해 가져와서 
뷰에서 보여줍니다. 그리고 그 이후에 댓글을 쓰면 ajax로 댓글을 전송하고 해당 내용을 현재 댓글의 
아래에 붙여주도록 처리를 합니다.

상세 페이지 들어갈때 댓글 내용을 ajax로 호출하여 붙여넣으려면 뷰 페이지에서 해당 ajax 부분을 호출해줘야 합니다.
초보프로그래머 / 2014/08/03 01:42:37 / 추천 0
뷰에서 <tbody id="racereply_container"></tbody> 이걸로 출력 되는걸로 알고있어요..
사수님이 하신거 보니까,, 이런식으로 가지고 오더라구요..
kaido / 2014/08/03 09:54:14 / 추천 0
제일 빠른 답은 사수분에게 있습니다.
오히려 물어보는게 맞고, 알려주는게 맞습니다.
막말로 하면

'내가 당신이 짠게 참 뭐 같아서 이해가 잘 안되니, 사수님께서 알려주시지요?'

당당하게 요구 하세요!
darkninja / 2014/08/03 13:17:43 / 추천 0
안알려줌 ㅋ
구글로 전세계를 방황하며 헤메어 보았지만
저와 비슷한 코딩스타일을 가진 사람은 한명도 못 보았습니다.
대화가 답인데
우리나라는 그게 참 어렵죠!
 
letsgolee / 2014/08/03 21:15:52 / 추천 0
제가 볼 때에는 위의 소스 자체에는 문제가 없어 보입니다. 다만 관련 파일들이 있는지가 궁금하네요. 예를 들어 jquery pagination 플러그인을 사용하고 있는데 그게 "사수"라는 분이 수정해서 사용하는 것처럼 보이네요. 일반적으로 알려진 코드가 아닙니다. 따라서 관련 js파일이 있어야 할듯. $("#racereply_container").paging(load_reply_option);에서 paging이 그겁니다.

또한 코멘트는 자동으로 가져오지 않기 때문에 load_reply를 실현시켜주는 코드가 있어야 코드를 가져오겠죠? 예를 든다면  $(document).ready()안에 있어야 한다든지 해야 할겁니다. 그리고 add_reply를 실행하면 마찬가지로 코멘트가 추가되었으니 화면이 리플레쉬 되거나 혹은 load_reply가 실행되어야 할거구요.