개발 Q&A

제목 view 부분에 질문 드립니다.
글쓴이 ryuppp 작성시각 2012/12/18 02:19:12
댓글 : 2 추천 : 0 스크랩 : 0 조회수 : 16381   RSS
전에 올렸던 작업 계속하는데요, 한가지 문제를 해결하지 못하고 있습니다.
view부분이구요,  코드는 아래와 같습니다. 
설명드리자면, 
페이지 중간에 table하나가 들어갑니다. 
테이블에는 name, part, due_date 칼럼이 있고 다음에 text box로 클릭하면 calendar가 떠서 new_due_date을 
입력 받을 수 있는 칼럼하나, 맨 마지막은 그걸 confirm 하는 save 버튼이 있습니다. 
물론 테이블은 내용이 매번 바뀔 수 있구요...
제 문제는 이 테이블의 내용에서 save버튼을 구현하는 부분입니다. 
save를 클릭하면 자바스크립트로 두번째 코드를 돌려서 controller로 자료(form)를 보내고 거기서 model을 불러서
database를 new_due_date으로 업뎃하는게 목표입니다.
그래서 <form action="<?php echo site_url('application_deadlines/update_due_date');?>" name="new_form" method="POST">이 부분의 form을 아래 자바스크립트코드에서 클릭시 불러오면 될 것 같아서 아래와 같이 짜봤는데
confirm키는 먹히고 다 되는데 실제 update만 진행이 안됩니다. form을 불러오는데 문제가 있는 것 같은데
form에 id를 쓰면 되긴 되는데 dynamic table이다보니 엉뚱하게 업뎃되버려서 name이나 class를 써야되는 것 같은데
그러면 도통 제대로 불러서 쓰질 못하겠네요. id는 페이지당 유일한 것에만 써야된다고  그래서 안되는 것 같고 
그래서 name, class를 써서 getElementByName뭐 이렇게 하자니 잘 안되는 것 같습니다. 
고수님들의 도움 부탁드립니다. 

감사합니다. 
<table border="1">
  <tr>
   <th>Name</th>
   <th>Part</th>
   <th>Due Date</th>
   <th>New Due Date</th>
   <th>Save</th>
  </tr>
  <?php foreach($due_dates as $date):?>
   <tr>
    <td><?php echo $date['name'];?></td>
    <td><?php echo $date['part'];?></td>
    <td><?php echo $date['date_deadline'];?></td>
   <form action="<?php echo site_url('application_deadlines/update_due_date');?>" name="new_form" method="POST">
    <td>
     <input type="hidden" name="name" value="<?php echo $date['name']; ?>" >
     <input type="hidden" name="part" value="<?php echo $date['part']; ?>" >
     <input type="text" class="text date_input date_picker date" name="new_due" autocomplete="off" name="date"; />
    </td>
    <td><button class="submit">Save</button>
    </td>
   </form>
  </tr>
  <?php endforeach;?>

 </table>
$('.submit').click(function(e){
  e.preventDefault();
  // var new_due_date = document.getElementsByName("date");
  var new_due_date = $(this).parent().prev().find('.date').val();
  if(confirm("New due date is\n" +new_due_date+ "\n \n Do you want to save it?")){
   //how to call update database function here?
   //document.getElementsById("new_form").submit();
 //  $('.new_form').submit();
   alert("Change Saved");
  }
  else{
   alert("Save Canceled");
  }
 });
 
 다음글 sysdate() 재 질문입니다 ! (4)
 이전글 맨붕!! (4)

댓글

변종원(웅파) / 2012/12/18 09:37:57 / 추천 0
 <form>이 foreach안에 있어서 로우가 10개면 <form>도 10개입니다.
어차피 jquery로 체크하고 전송할거면 <form>은 최상단에 넣으시고
jquery로 처리하시는게 좋을 것 같네요.

그리고 현재 구문에서 submit되는 부분이 없습니다. 컨펌후 폼name에 대해
submit 시키는 부분을 넣어줘야 합니다. 

그리고 게시판 이동합니다.
ryuppp / 2012/12/19 07:15:32 / 추천 0
 답변 감사합니다. 웅파님. 
제가 아직 초보라 jquery 처리부분을 좀 더 공부해서 해보겠습니다. 
처리후에는 document.getElementByName("new_form").submit();
이런식으로 해보면 되겠죠? 

p.s.초보라 CI질문인지 그 외 질문인지도 아직 잘 몰랐습니다. ^^;
       옮기고 답변 주셔서 감사합니다.