금액입력을 컴마포함하여 받아 숫자로만 저장하는 방법
본문
수고하십니다.
많은 도움으로 여기까지 오게되었습니다
결국 숫자입력시 컴마가 없으면 입력이 번거로워 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 파일을 만드신후
해당 파일에 위 내용을 삽입하시면 될것 같습니다.
처리되는 페이지에서 아래와 같이 하면 될거 같아요
$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);
?>
!-->
위에 올려주신 소스를 보니 저장은 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);
?>