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

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
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 인 모든 항목의 숫자에 콤마가 찍힘.

 

 

 

 

 

 

답변을 작성하시기 전에 로그인 해주세요.
전체 0
QA 내용 검색
filter #css ×
  • 개별 목록 구성 제목 답변작성자조회작성일
  • 질문이 없습니다.

회원로그인

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