제목 | foreach문.. 라디오버튼 피드백좀 부탁드립니다 꾸벅. | ||
---|---|---|---|
글쓴이 | 초보프로그래머 | 작성시각 | 2014/10/22 14:27:17 |
|
|||
<?php foreach($milemilestone_data as $data): ?> <table class="bbsList"> <tr> <td><input type="text" name="MILE_STEP" value="<?=$data->MILE_STEP?>" /></td> <td><input type="text" name="MILE_TITLE" value="<?=$data->MILE_TITLE?>" /></td> <td><input type="text" name="MILE_DATE" class="datepicker" value="<?=substr($data->MILE_DATE, 0, 10)?>" /></td> <td><input type="radio" name="STEP_COMP_YN" <? if($data->STEP_COMP_YN == "Y"){ ?> checked <? } ?> value="Y">달성 <input type="radio" name="STEP_COMP_YN" <? if($data->STEP_COMP_YN == "N"){ ?> checked <? } ?> value="N">미달성 </td> <td class="last"><input type="button" onclick="btnmilemilestoneupdate(this);" value="수정" /></td> </tr> </table> <br/> <?php endforeach; ?> 만약 이런식으로 5번 뿌려지는데요.. 라디오버튼 name이 STEP_COMP_YN 이건데,, 중복되서, 값이 맨 끝에꺼밖에 표시가 안됩니다./. foreach 문이 반복되면서... 뭐 for문이든 배열로 [0]~ [4] 까지 돌면서 이름이 바껴야 할것 같은데요... 피드백좀 부탁드립니다 ㅠㅠ |
|||
다음글 | mysql insert 시에 변수에 값이 없을 때 에러 (5) | ||
이전글 | 정말 초보자질문일것 같은데요 로그인 관련해서 문의 드립... (17) | ||
아싸리비아
/
2014/10/22 15:23:35 /
추천
0
|
초보프로그래머
/
2014/10/22 15:39:57 /
추천
0
네. 맞아요. 이름이 중복되서 만약 row가 두줄이면 한줄에 버튼 2개, 총 라디오버튼은 4개인데,
4개중에 1개밖에 선택이 안되네요.. 이건 배열로 이름을 바꿔야 할것 같은데,, 팁좀요..ㅜㅜ |
아싸리비아
/
2014/10/22 15:48:42 /
추천
0
위에 내용중 1,2번으로 방식 설명드린부분 응용하시면 가능하실걸로 보입니다.
|
초보프로그래머
/
2014/10/22 16:04:55 /
추천
0
<?php foreach($milemilestone_data as $data): ?>
<table class="bbsList"> <tr> <input type="hidden" name="MILE_SEQ" value="<?=$data->MILE_SEQ?>"> <td><input type="text" name="MILE_STEP" value="<?=$data->MILE_STEP?>" /></td> <td><input type="text" name="MILE_TITLE" value="<?=$data->MILE_TITLE?>" /></td> <td><input type="text" name="MILE_DATE" class="datepicker" value="<?=substr($data->MILE_DATE, 0, 10)?>" /></td> <td><input type="radio" name="STEP_COMP_YN[<?=$i?>]" <? if($data->STEP_COMP_YN == "Y"){ ?> checked <? } ?> value="Y">달성 <input type="radio" name="STEP_COMP_YN[<?=$i?>]" <? if($data->STEP_COMP_YN == "N"){ ?> checked <? } ?> value="N">미달성 </td> <td class="last"><input type="button" onclick="btnmilemilestoneupdate(this);" value="수정" /></td> </tr> </table> <br/> <?php $i++?> <?php endforeach; ?> 님 방식대로 응용해서 이렇게 되니까, 루프를 돌때마다 [0]~[4] 까지 나옵니다. 그럼 인제 이걸 컨트롤러나 모델에서 $this->input->post('STEP_COMP_YN'); 이걸 받아야 하는데, 배열을 어떡해 받아야 할지... 에휴..ㅠㅠ 이렇게초보적인것도 몰라서 저는... ㅠㅠ |
아싸리비아
/
2014/10/22 16:26:06 /
추천
0
MILE_SEQ, MILE_STEP, MILE_TITLE, MILE_DATE 도 동일하게 해야 하지 않을까 싶습니다.
$this->input->post 로 불러올경우 array로 ($_POST와 동일) 반환하니, 해당 정보를 받는 Controller 단에서도 for을 돌려서 처리하시면 될듯 보입니다. 우슨 프로그래밍 하실경우 print_r로 데이터를 찍어보시면서 프로그래밍하시면 도움이 많이 되실겁니다. print_r($this->input->post('....')); |
초보프로그래머
/
2014/10/22 16:47:40 /
추천
0
감사합니다^^
|
input 을 감싸는 foreach문으로 인하여 name 값이 중복되고
전송받는 쪽에선 의도하지 않은 값들이 처리 될수 있으니 수정이 필요해 보입니다.
보편적으로 input에서 다중값을 다룰때는 아래와 같은 방식으로 많이 합니다.
1. $i 는 자동 증가값처리
name='MILE_STEP[<?=$i?>]'
2. 기존 값이 존재할경우 ( $i는 증가값 )
<input type="hidden" name="uid[<?=$i?>]" value="<?=데이터 고유값?>">
<input type="hidden" name="MILE_STEP[<?=데이터 고유값?>]" >
or
<input type="hidden" name="MILE_STEP[<?=$i?>]" >
등 형태로 input name값을 분리하며,
제일 중요한부분은 form submit을 받는 Controller 단에서 데이터를 어떻게 처리할것인가가
제일 중요한 부분입니다. 해당 Controller에서 받는형태에 따라서 form에서 던지는 형태가
정해지기 때문입니다.