CI 묻고 답하기

제목 댓글을 입력하고 싶은데요.
글쓴이 책상다리 작성시각 2014/03/11 17:43:38
댓글 : 12 추천 : 0 스크랩 : 0 조회수 : 12851   RSS
 보통은 리스트에서 상세페이지로 넘어간 뒤에 댓글을 다는데요.
그건 어렵지 않게 구현했는데,

리스트 쪽에서 댓글을 달고 싶습니다. 
방명록 같은 개념이랄까요. 
일단 게시글마다 id를 적어놔서 구분은 되는데, 이걸 입력할때 넘겨주는게 약간 문제 인거 같습니다.
hidden값으로 넘겨주려고 했는데, 입력 부분에서 좀 문제가 생기는거 같습니다.
한페이지당 글은 5개정도 보여주면서 각각의 글 내용밑에 댓글 쓰기와 쓴 댓글 리스트가 들어가게 할 생각입니다만,
쓰기 쪽에 문제가 있는거 같습니다.

<script>
 $(document).ready(function(){
  $("#write_btn").click(function(){
   if($("#input01").val()==""){
    alert('내용을 입력해주세요');
    $("#input01").focus();
    return false;
   }else{
    $("#write_action").submit();
   }
  });
 });
</script>

<?php foreach ($list as $lt): ?>
<table cellspacing="0" cellpadding="0" class="table">
 <thead> 
  <tr>
   <td>No.<?=$lt->id;?> <b><?=$lt->subject;?></b> (<?=$lt->reg_date;?>)
                        </td>
  </tr>
  <tr>
   <td><?=$lt->user_name;?></td>
  </tr>
  <tr>
            <?php $contents = str_replace("\n","<br />\n",$lt->contents);?>
   <td><?=$contents;?></td>
  </tr>
 </thead>
</table>

$http = "/board/comment/".$lt->id;
$attributes = array('id'=>'write_action','class'=>'form_horizontal');
echo form_open($http,$attributes);
?>
<textarea class="input-xlarge" id="input01" name="comment" rows="3">
</textarea>
<input type="hidden" name="id" value='<?=lt->id;?>'>
<input type="hidden" name="name" value='<?=$this->uri->segment(1);?>'>
<button type="submit" id="write_btn">작성</button>
<?php endforeach; ?>
대략 소스는 이렇습니다. 
댓글을 입력하려고 작성을 누르면 위쪽에 jquery가 실행되지도 않고 그냥 댓글이 입력됐다고 나옵니다;
물론 안에 내용은 없구요;;
위 소스 외에도 jquery를 수정하거나 해봤는데, 제대로 되는게 없어 질문 올려봅니다 ㅠ
조금만 도움 부탁드립니다...
 다음글 Jmeter 스트레스 툴 사용법 관련 질문. (1)
 이전글 session과 try rollback (1)

댓글

토리 / 2014/03/11 18:00:27 / 추천 0
button type 을  type="button"
책상다리 / 2014/03/11 18:02:06 / 추천 0
 토리님// 네 그것도 시도해본것중에 하나입니다...ㅠㅠ 아마 버튼 자체가 작동하지 않는건 아닌거 같습니다. 아무 내용도 입력을 안했는데, 디비에 빈값으로 저장이 되는거 보면...
변종원(웅파) / 2014/03/11 18:06:31 / 추천 0
$("#input01").val() <- 찍어보심이...
토리 / 2014/03/11 18:12:21 / 추천 0

alert 이라도 하나 찍어보심이... 실행이 되긴 되는지..;;

textarea 에 공백같은게 들어가 있어서 그냥 실행 된걸 수도 있으니깐공백을 제거해보는것도..

$("#input01").val().replace(/\s/g, "") == ""

책상다리 / 2014/03/11 18:16:01 / 추천 0
변종원님//네 찍어봣습니다. input01 에 값은 이상없이 들어가는 모양인데, 문제는 글이 5개라면 id 값이 1 2 3 4 5 이렇게 있다고 가정했을때, 작성 버튼을 어느걸 누르던 id 값이 무조건 5로만 인식되는거 같습니다....(__)

Artz / 2014/03/11 18:53:40 / 추천 0
textarea의 id가 각각 달라야 할 것 같은데요.
지금 소스에선, foreach 내부에 id가 input01로 동일합니다.
책상다리 / 2014/03/12 11:55:47 / 추천 0
 Artz님 // 음 역시...그럼 write_btn , write_action에도 id가 각각 달라져야 할까요?
이걸 jquery에 적용 시키면 될것도 같네요..해봐야겠습니다..
감사합니다.
변종원(웅파) / 2014/03/12 12:17:51 / 추천 0
책상다리/ id는 그 문서 내부에서 유니크한 값입니다. 1개만 존재해야 제대로 작동합니다. class로 바꾸고 작업하세요. 
책상다리 / 2014/03/12 13:31:15 / 추천 0
 변종원님// 그 각각 달라져야 한다는게요. id가 1번 글에는  write_btn, write_action,textarea의 아이디가 1이고
5번 글에는 
 write_btn, write_action,textarea의 아이디가 5이고, 이런 방식도 안되는건가요?
아이디 값을 줄때 예를들면 write_btn_'$lt->id'이런 식으로 준다던가요..
변종원(웅파) / 2014/03/12 13:45:45 / 추천 0
id_1, id_2 이런식으로 쓰시면 됩니다.
책상다리 / 2014/03/12 13:53:40 / 추천 0
 변종원님 // 저도 그렇게 간단하게 주고 싶은데 ㅠㅠ 
위 소스에 보시면 foreach문으로 돌려주는거라..글 id값이 항상 달라져서요 ㅠㅠ 
변종원(웅파) / 2014/03/12 14:09:06 / 추천 0
개발자가 하고 싶은데로 하면 되는거죠. 
foreach 문 안에서 $i 변수 1부터 하나씩 증가해서 줘도 되구요.

포럼소스 댓글 부분 참고하세요.