자바스크립트에서 합계 처리..

 
위 링크에 올려주신 소스를 반복문으로 처리를 하려 합니다. 반복횟수는 상황에 따라 달라질수가 있기에 처리를 해보니 에러만 좌르르륵 쏟아 집니다...
 
역시 실력없는 삽질파의 한계를 느끼며 혹시나 아시는 분의 조언을 구해 봅니다.
 
원본소스 기준 설명입니다.
 
<form name="form1">

<!--- 여기부터 반복문으로 고쳐서--->
인트로(20만원)<input type=hidden name="intro" value="200000">  
수량: <input type=text name="intro_count" size=3 onkeyup="my_calc(this.form.intro, this.form.intro_count, this.form.intro_sum)">
합계: <input type=text name="intro_sum" size=6 readonly value="0"><br><br>
<!-- 여기까지를 돌리고  -->
 
메인(10만원)<input type=hidden name="main" value="100000">  
수량: <input type=text name="main_count"  size=3  onkeyup="my_calc(this.form.main, this.form.main_count, this.form.main_sum)">
합계: <input type=text name="main_sum" size=6 readonly value="0"><br><br>

서브페이지(2만원)<input type=hidden name="subpage" value="20000">  
수량: <input type=text name="subpage_count"  size=3 onkeyup="my_calc(this.form.subpage, this.form.subpage_count, this.form.subpage_sum)">
합계: <input type=text name="subpage_sum" size=6 readonly value="0"><br><br>
 
 
전체 합계: <input type=text name="total" size=9 value="0">
 

<script language="javascript">
  function my_calc(item, item_count, item_sum){
      if(item_count.value=="")    var count = 0;
      else                        var count = item_count.value;
      item_sum.value = eval(item.value) * eval(count) ;
      my_total(document.form1);
      
  }
  function my_total(f){
     //이부분에서 입력을 처리를 해야는데 eval(f.intro_sum.value)+ eval(f.main_sum.value) + eval(f.subpage_sum.value);  갯수에서 걸립니다..ㅠ.ㅠ
     //이부분을 어떻게 처리를 해야 할까용?.......ㅠ.ㅠ36.gif
     f.total.value = eval(f.intro_sum.value)+ eval(f.main_sum.value) + eval(f.subpage_sum.value);
  }
 
</script>
</form>
 
행복한 봄날 되세요....^^33.gif
|

댓글 3개

<form name="form1">

<?
$cnt = 반복횟수;

for($i=0;$i<$cnt;$i++){
?>
<!--- 여기부터 반복문으로 고쳐서--->
인트로(20만원)<input type=hidden name="intro[]" value="200000">
수량: <input type=text name="intro_count[]" size=3 onkeyup="my_calc(this.form.intro[<?=$i?>], this.form.intro_count[<?=$i?>], this.form.intro_sum[<?=$i?>])">
합계: <input type=text name="intro_sum[]" size=6 readonly value="0"><br><br>
<!-- 여기까지를 돌리고 -->
<?
}

$js_print = "";
for($i=0;$i<$cnt;$i++){
// 자바스크립트 출력부분
$js_print.="eval(f.intro_sum[$i].value)+";
}
?>

메인(10만원)<input type=hidden name="main" value="100000">
수량: <input type=text name="main_count" size=3 onkeyup="my_calc(this.form.main, this.form.main_count, this.form.main_sum)">
합계: <input type=text name="main_sum" size=6 readonly value="0"><br><br>

서브페이지(2만원)<input type=hidden name="subpage" value="20000">
수량: <input type=text name="subpage_count" size=3 onkeyup="my_calc(this.form.subpage, this.form.subpage_count, this.form.subpage_sum)">
합계: <input type=text name="subpage_sum" size=6 readonly value="0"><br><br>


전체 합계: <input type=text name="total" size=9 value="0">


<script language="javascript">
function my_calc(item, item_count, item_sum){
if(item_count.value=="") var count = 0;
else var count = item_count.value;
item_sum.value = eval(item.value) * eval(count) ;
my_total(document.form1);

}

function my_total(f){
//이부분에서 입력을 처리를 해야는데 eval(f.intro_sum.value)+ eval(f.main_sum.value) + eval(f.subpage_sum.value); 갯수에서 걸립니다..ㅠ.ㅠ
//이부분을 어떻게 처리를 해야 할까용?.......ㅠ.ㅠ
f.total.value = <?=$js_print?> eval(f.main_sum.value) + eval(f.subpage_sum.value);
}

</script>
</form>

이렇게 바꾸어보았습니다.
반복문의 이름을 배열화 시켰습니다.
감사합니다....^^

약 40시간 이상을 혼자 해보겠다고 하다가 결국은 손들기 일보직전에서 .....ㅠ.ㅠ

거듭 감사를 드립니다....
혹 안되시면 다시 질문주세요 incd@nate.com 네이트온으로도 질문받아요
댓글을 작성하시려면 로그인이 필요합니다. 로그인

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기 기존 게시물은 열람만 가능합니다.

+
제목 글쓴이 날짜 조회
18년 전 조회 1,618
18년 전 조회 1,525
18년 전 조회 1,426
18년 전 조회 1,627
18년 전 조회 1,389
18년 전 조회 1,596
18년 전 조회 1,605
18년 전 조회 1,580
18년 전 조회 1,515
18년 전 조회 1,875
18년 전 조회 1,572
18년 전 조회 1,673
18년 전 조회 1,516
18년 전 조회 1,835
18년 전 조회 1,517
18년 전 조회 1,516
18년 전 조회 1,998
18년 전 조회 1,502
18년 전 조회 2,039
18년 전 조회 1,517
🐛 버그신고