3년전에 궁금하던 거,,,

3년전에 궁금하던 거,,,

QA

3년전에 궁금하던 거,,,

본문

천단위 컴마 찍기를 하고 싶었는데...구글링해도 이해가 안되그,,,유유

그래서 포기했던 겁니다..

 

 

3년이 지난 지금 약간은 알아먹을 수 있게 되어,,, 

, 키핑과 함께 찍는거 까지는 했는데...

 

이게 저장할 때도 컴마가 들어가 계산이 꼬이그 역같네요,,ㅎㅎ

 

키핑과 함께 컴마 찍고 저장시 제거하는 올바른 방법 좀 정리해주실 분 없을까요?

 

wr_1에 쓰려는데...

이 질문에 댓글 쓰기 :

답변 7

한번해보세요 간소하게 만들었는데 잘되는진 테스트해보시구요

 

write.skin.php 입니다.

        <tr>

            <th scope="row"><label for="wr_1">wr_1<strong class="sound_only">필수</strong></label></th>

            <td class="wr_1">

                <input type="text" name="wr_1" value="<?echo number_format($write['wr_1']) ?>" id="wr_1" class="frm_input" size="50">

            </td>

        </tr>

 

 

그리고 아랫쪽 스크립트에 넣어주세요

$(function() {

$("input[name=wr_1]").keyup(function(){

//console.log("1234");

 

var temp = no_comma($(this).val());

 

console.log(temp);

$(this).val(number_format(temp));

});

});

이렇게 넣으시면 글쓰기중 콤마가 찍힙니다.

 

write_update.skin.php

<? 

if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가

// 자신만의 코드를 넣어주세요. 

 

$wr_1 = preg_replace("/[^0-9]/", "",$wr_1);

 

if(!$wr_comment) {  // 코멘일때는 저장하면 안됩.

 

    $sql = " update $write_table set wr_1 = '$wr_1' where wr_id = '$wr_id' " ; 

sql_query($sql); 

?>

이렇게 넣어서 모든 문자를 제거해주고 저장을합니다.

 

view.skin.php

<?echo number_format($view['wr_1']);?> 

number_format을 이용하여 콤마를 찍어서 보여주죠

 

길게적은 답변글에 댓글이없어서 더 남겨드리고 싶어도

힘이 나질않아 고민했지만 도움이 되었음하네요

위에서 말씀하신대로 number_format 로 함수를 이용하면 천단위 콤마를 사용하실수있습니다.

글쓰기할때나 db에 넣을때는 해당 함수를 사용하지않고

순수하게 10000으로 넣어주는거죠

보여지는 view페이지에서 echo number_format($view['wr_1']); 이런식으로 사용하시면

보여지는 view페이지에서 10,000 으로 찍혀서 보이겠죠

글쓰기시, 글수정시에도 입력할때마다 10,000등으로 보여주려면

스크립트를 이용하셔서 구연하셔야합니다.

db에 저장할때에도 꼭 , 를 포함해서 저장을 하여야하는지는 의문이군요

그냥 1000000과 같이 그냥 숫자로 입력을 하고

보여지는 페이지에서만 number_format으로 출력해준다면

여러가지 생각을 복잡하게 할 필요는없어지는거지요

, 키핑과 함께 찍는거 까지는 했는데...

<--- 그렇다면 스킨폴더에 write_update.skin.php 화일에다가 다음을 추가해서 사용 합니다

$wr_1 = str_replace(;,;, $wr_1);

다른 방법 : write.skin.php 하단 submit함수 부분에 다음을 추가

f.wr_1.value= f.wr_1.value.replace(/,/g, '');

 

 

 

 

아주 간단한건데요 

http://www.webmadang.net/develop/develop.do?action=read&boardid=1003&page=3&seq=25  

 

아니 이걸 3년동안 고생하세요? ㅎ 

글쓴이님의 고충 저도 잘압니다.

보기나 리스트페이지에서는 number_format 을 이용하여

컴마를 찍을수 있겠지만.

 

문제는 쓰기페이지!!

 

number_format 으로 컴마를 넣으면 계산식이 꼬이고

않넣자니 백만원대 숫자가 너무 밉게 나오고..

그래서 저는 계산이 필요한 여분필드 wr_10 을 hidden 으로 해놓구요

input wr_10c 를 하나 만들어 그곳에 number_format 으로 뿌려줍니다.

그리고 계산이 끝나면 wr_10 과 wr_10c 두곳에 값을 보내는거죠..

 

그러면 사용자는 계산값이 wr_10c 로 보여 컴마가 잘 보이고

실제 db저장은 hidden 된 wr_10 에 저장되니 둘다 해결입니다.

 

리스트나 뷰페이지에서는 number_format 으로 간단하게 해결!

 

 

그냥 단순무식하게 write.skin.php 에서 자체적으로 해결하는 방법입니다.

계산식은 그냥 자바스크립트로 했구요

number_format 은 글쓰기든 글수정이든 보기든 어디서든 쓸수있게 스크립트로 클래스 형태로 만들었어요

 


<script language="javascript">
 
// 콤마찍기 온로드 스크립트 첫번째
window.onload = function() 
{ 
 var ins = document.getElementsByClassName('addcomma'); 
    for(var i=0; i<ins.length; i++) 
    { 
        if(ins[i].type=='text' && !isNaN(ins[i].value) && ins[i].value.length>3) 
        { 
            ins[i].value = ins[i].value.toComma(); 
        } 
    } 
} 
 
// 요곤 계산식 스크립트
function calcs1()
{
 var f = document.fwrite;
 var temp = 0;
temp= 
 parseInt(f.wr_1.value) + 
 parseInt(f.wr_2.value) + 
 parseInt(f.wr_3.value) + 
 parseInt(f.wr_4.value) ;
f.wr_5.value=temp;
f.wr_5comma.value=temp;
 
// 계산할때마다 숫자가 변하므로 계산식 안에 콤마스크립트를 넣어줌
// 계산식이 끝나고 결과가 써질때 아래 콤마 스크립트가 실행됨
String.prototype.toComma = function() 
{ 
    var n = String(this).replace(/\,/g, ""); 
    return n.match(RegExp("^[0-9]{"+(n.length%3||3)+"}|[0-9]{3}","g")); 
}
}
</script>

 

fwrite(글쓰기 페이지의 기본 form) 으로 감싸진 form 에서

calcs1(); 스크립트를 실행하면 여분필드 wr_1 ~ wr_4 까지의 합을 wr_5 에 뿌려줍니다.

그리고 이때 wr_5comma input 안에도 같은 결과값을 넣구요

 

wr_5 는 hidden 처리하여 db로 넘길 때 쓰이구요 wr_5comma는 그냥 단순히 사용자에게 보여주는 값입니다. wr_5comma 아이디는 아무거나 해도 상관없어요.

 

그리고 아이디가 wr_5comma인 input 안에 addcomma 클래스를 넣어주세요.

그러면 계산식 스크립트가 매 실행될때마다 class="addcomma" 인 input 에 콤마가 찍히게 됩니다.

실제 저장될 wr_5 는 hidden 처리되니 계산식이 꼬일수도 없구요~

 

 

3줄요약

wr_1 ~ wr_4 값을 더해서 wr_5 wr_5comma 에 뿌려줌

wr_5는 hidden 처리되서 db 에 저장되고 wr_5comma 는 사용자에게 콤마로된 계산값을 보여주는 항목임

콤마를 스크립트로 처리해서 클래스명이 addcomma 인 모든 항목의 숫자에 콤마가 찍힘.

 

 

 

 

 

 

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

회원로그인

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