금액입력을 컴마포함하여 받아 숫자로만 저장하는 방법

금액입력을 컴마포함하여 받아 숫자로만 저장하는 방법

QA

금액입력을 컴마포함하여 받아 숫자로만 저장하는 방법

본문

수고하십니다.

많은 도움으로 여기까지 오게되었습니다

결국 숫자입력시 컴마가 없으면 입력이 번거로워 input에 컴마를 포함하여 받게 되었습니다.

한데 저장할때는 컴마 뒷부분은 숫자가 아니라는 이유로 저장이 안되네요.

유사질문을 검색해봐도 컴마를 포함하여 표시하게 하는 내용은 있습니다만

컴마를 제외하고 저장하는 내용은 없는것같아 질문 올립니다.

 

컴마를 바꾸기위해서

str_replace 함수를 쓰는것은 알겠는데요

<?=$write[wr_11]?>

이 부분에 어떻게 적용되는지를 모르겠습니다.

(물론 wr_11은 생성되어있으며 100억단위가 넘어 bigint로 되어있습니다. )

 

감사합니다.. 

 


<!--금액에 콤마찍기-->
<script language="javascript">
function number_format(f) {
 var val = f.value;
 var len = val.length;
    var number_format1 = "", number_format2 = "";
 var c = 0;
 
 if(val.charCodeAt(len-1)<48 || val.charCodeAt(len-1)>57) {
  alert("숫자만 입력해주세요");
  f.value = val.substr(0, (len-1));
 }else{
     if(len > 3) {   
         for(i = 0 ; i < len; i++){
    one = val.charAt(i)
    if(one != ",") number_format1 += one;
         }
   var number_format1_len = number_format1.length;
   var in_c = number_format1_len%3;
   if(!in_c) in_c = 3;
   
   for(i = 0 ; i < number_format1_len; i++){
    number_format2_one = number_format1.charAt(i)
    if(i == in_c){
     number_format2 += ",";
     in_c = 3+in_c;
    }
    number_format2 += number_format2_one;
         }
         f.value = number_format2;
     }
 }
}
</script>
   <input class="frm_input" type=text  name='two01' size=16 onKeyUp="number_format(this)" value="<?=$write[$wr_11]?>"  

 

 

이 질문에 댓글 쓰기 :

답변 4

write_update.head.skin.php 파일을 만드신후 

해당 파일에 위 내용을 삽입하시면 될것 같습니다.

 

 

 

제 지식이 미미하여 아무리 노력해도 안되네요....

말씀하신대로
wirte_updata_head.skin.php 에


<? $wr_11 = str_replace(',','',$_POST['wr_11']); ?>

이렇게 해보았습니다만... 안되네요

혹시나해서.
bbs폴더내의 write_update.php 파일의내용중



    $sql = " insert into $write_table
                set wr_num = '$wr_num',
                     wr_reply = '$wr_reply',
                     wr_comment = 0,
                     ca_name = '$ca_name',
                     wr_option = '$html,$secret,$mail',
                     wr_subject = '$wr_subject',
                     wr_content = '$wr_content',
                     wr_link1 = '$wr_link1',
                     wr_link2 = '$wr_link2',
                     wr_link1_hit = 0,
                     wr_link2_hit = 0,
                     wr_hit = 0,
                     wr_good = 0,
                     wr_nogood = 0,
                     mb_id = '{$member['mb_id']}',
                     wr_password = '$wr_password',
                     wr_name = '$wr_name',
                     wr_email = '$wr_email',
                     wr_homepage = '$wr_homepage',
                     wr_datetime = '".G5_TIME_YMDHIS."',
                     wr_last = '".G5_TIME_YMDHIS."',
                     wr_ip = '{$_SERVER['REMOTE_ADDR']}',
                     wr_1 = '$wr_1',
                     wr_2 = '$wr_2',
                     wr_3 = '$wr_3',
                     wr_4 = '$wr_4',
                     wr_5 = '$wr_5',
                     wr_6 = '$wr_6',
                     wr_7 = '$wr_7',
                     wr_8 = '$wr_8',
                     wr_9 = '$wr_9',
                     wr_10 = '$wr_10',
                     wr_11 = 'str_replace(',','',$wr_11)',
                     wr_12 = '$wr_12',
                     wr_13 = '$wr_13',
                     wr_14 = '$wr_14',
                     wr_15 = '$wr_15',

위와같이 수정해보았습니다만 이 또한 안되네요

간단할줄 알았는데.. 좀 막막합니다....
번거롭게해드려 죄송합니다만....  다시한번 부탁드립니다.

처리되는 페이지에서 아래와 같이 하면 될거 같아요

$wr_11' = str_replace(',','',$_POST['wr_11']);

 

/bbs/write_update.php 파일을 직접 수정하시면 모든 게시판에서 동일하게 적용되므로 문제가 될듯 합니다

또한, sql 문에 ' 홑따옴표' 가 중첩되어 사용되어 쿼리문에도 오류가 발생할듯 합니다.

 

첫번째 write_update.head.skin.php 의 파일명이 정확한지 다시한번 확인해보시구요.

또한가지 방법으로는 write_update.skin.php 파일을 만들어서

해당 파일에 아래와 같이 작성하는 방법도 있겠습니다.

 


<?php
 
$wr_11 = str_replace(',','',$_POST['wr_11']);
 
// 자신만의 코드를 넣어주세요.
$sql2 = " update $write_table set wr_11='$wr_11' where wr_id = '$wr_id' ";
sql_query($sql2);
 
?>

 

 

헉...
파일이름이...
write_update.head.skin.php
이렇게 하라하셨는데.
write.update.head.skin.php
이렇게 되어있었군요...
가르쳐주는것도 제대로 못받아 좀 한심합니다. ㅠㅠ
이제 잘 됩니다.
아래의 다른방법도 배움에 도움이 되기에 잘 살펴보겠습니다.

많은 가르침 감사합니다. ^^  즐거운 오후되세요 ^^

위에 올려주신 소스를 보니 저장은 wr_11 에 하는데

폼에 지정된 필드는 two01 이름으로 되어있네요.


write_update.skin.php 파일에 아래와 같이 넣어주시는 것이 좋겠습니다.



<?php


$two01 = str_replace(',','',$_POST['two01']);


// 자신만의 코드를 넣어주세요.
$sql2 = " update $write_table set wr_11='$two01' where wr_id = '$wr_id' ";
sql_query($sql2);



?>

답변을 작성하시기 전에 로그인 해주세요.
전체 16
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT