개발 Q&A

제목 962번 추가 질문
글쓴이 ryuppp 작성시각 2012/12/20 02:51:25
댓글 : 3 추천 : 0 스크랩 : 0 조회수 : 20346   RSS
962번에서 제가 문의 한것 문제점은 잘 이해할 수 있었습니다. (웅파님 감사합니다.)
사실 제가 조금 다른 방법으로 대충 해결하긴 했는데 여전히 알려주신 방법대로는 해결을 못했습니다.
그래서 추가로 좀 더 자세한 답을 받았으면 합니다.

우선 제 form이 테이블 안의 loop안에 있어서 id를 못쓰고 문제가 된다는 것 알았습니다.
그런데 그걸 해결하기 위해 form을 최상단에 넣으라는 말을 잘 이해못하겠습니다.
테이블 전체를 form으로 사용하라는 말씀이신지...

일단 제가 대충 해결한 방법은
<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']; ?>" id=<?php echo "name_$i"?>>
     <input type="hidden" name="part" value="<?php echo $date['part']; ?>" id=<?php echo "part_$i"?>>
     <input type="text" class="text date_input date_picker date" name="new_due" autocomplete="off" name="date"; id=<?php echo "date_$i"?>/>
    </td>
    <td><input type="submit" class="save_button" onclick="[removed]alert('Do you want to save?')" value="Save Change">    
       
    </td>
 </form>
  </tr>
  <?php endforeach;?>
  이렇게 
<td><input type="submit" class="save_button" onclick="[removed]alert('Do you want to save?')" value="Save Change" >
이 한줄로 그냥 적당히 alert 보여준는 걸로 했는데요, 
이렇게 하는게 아니라 제 전의 방식대로 따로 form을 jquery로 function처리 하려면 어떻게 해야 하는지 
조금만 더 자세히 알려주시길 부탁드립니다. 
제 첫 CI작업인데 하나라도 좀 정확히 알고 넘어가고 싶습니다.
감사합니다.  

 다음글 google api library (2)
 이전글 checkbox 클릭시에 form submit 문제요 (6)

댓글

변종원(웅파) / 2012/12/20 09:08:52 / 추천 0
폼의 action이 각기 다른 것도 아니고 똑같은 코드를 양산해낼 필요가 없지요.

테이블 밖으로 폼 선언을 빼서 한번만 하고 각 row 마다 버튼을 하나 두고 클릭시
미리 hidden값을 가져와 전송하도록 자바스크립트나 jquery로 만드시면 됩니다. 

http://hyvaa.tistory.com/13 참고 (이 소스에 전송할 값 가져오는 것만 추가하시면 됩니다)

그리고 2개의 hidden값은 <input type='hidden'>으로 처리하지 않고 <input name='new_due' vals='값1_값2'> 이렇게 넣고
jquery에서 불러오면 됩니다.
한대승(불의회상) / 2012/12/20 16:37:51 / 추천 0
흠...  원하시는 방법이 이건지 잘 모르겠지만...
참고 해 보세요.
아... jQuery 없으면 말짱 꽝!
<?php $idx = 0;?>
<?php foreach($due_dates as $date):?>
<?php $idx++;?>
<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" id="frm_<?php echo $idx;?>"> 
<td>
<input type="hidden" name="name" value="<?php echo $date['name']; ?>" id=<?php echo "name_$i"?>>
<input type="hidden" name="part" value="<?php echo $date['part']; ?>" id=<?php echo "part_$i"?>>
<input type="text" class="text date_input date_picker date" name="new_due" autocomplete="off" name="date"; id=<?php echo "date_$i"?>/>
</td>
<td><input type="input" class="save_button" onclick="$('#frm_<?php echo $idx;?>').submit()" value="Save Change">   
</td>
</form>
</tr>
<?php endforeach;?>

ryuppp / 2012/12/21 11:42:29 / 추천 0
불의 회상님, 감사합니다. 제 동료가 권해줬던 방법과 같은 것 같습니다. 
row마다 하나씩 증가된 id를 얻는데 성공해서 진행 했습니다. 
다만 아직 제가 잘 모르는 부분이 많아서 시간이 좀 걸리긴 하네요...^^;
감사합니다.