ช่วยทีคร๊าบบบบ

คือผมใช้
Text box รับค่าเป็นตัวเลขอย่างเดียว และ ใส่ comma ให้โดยอัตโนมัติ ที่หลักพัน หลักล้าน...(จากเวบคับ)

<script type="text/javaScript">
//เติม , (คอมมา)
function dokeyup( obj )
{
  var key = event.keyCode;
  if( key != 37 & key != 39 & key != 110 )
  {
    var value = obj.value;
    var svals = value.split( "." ); //แยกทศนิยมออก
    var sval = svals[0]; //ตัวเลขจำนวนเต็ม
  
    var n = 0;
    var result = "";
    var c = "";
    for ( a = sval.length - 1; a >= 0 ; a-- )
    {
      c = sval.charAt(a);
      if ( c != ',' )
      {
        n++;
        if ( n == 4 )
        {
          result = "," + result;
          n = 1;
        };
        result = c + result;
      };
    };
  
    if ( svals[1] )
    {
      result = result + '.' + svals[1];
    };
  
    obj.value = result;
  };
};

//ให้ text รับค่าเป็นตัวเลขอย่างเดียว
function checknumber()
{
  key = event.keyCode;
  if ( key != 46 & ( key < 48 || key > 57 ) )
  {
    event.returnValue = false;
  };
};
</script>

<input name="text1" type="text" onkeyup="dokeyup(this);" onchange="dokeyup(this);" onkeypress="checknumber()" size="30" maxlength="30">


แล้วผมเอามันบันทึกลงฐานข้อมูลคับ
แต่เลขที่มันบักทึกลงไป ยกตัวอย่างนะคับ
ถ้าใส่ 1,234.22 มันจะบันทึกแค่ 1  มันจะบักทึกเฉพาะเลขที่อยู่หน้า comma
ต้องทำไงคับถึงตะบันทึกหมด
16 มี.ค. 2553 2 1,863

555++++

ถ้ามี comma ฟิลด์ข้อมูลต้องเป็นข้อความครับ เช่น varchar หรือ text ไม่สามารถเก็บเป็นตัวเลขได้

และที่สำคัญมันจะใช้คำนวณไม่ได้

โดยทั่วไปเราจะใช้วิธีนี้ครับ

1.ฟิลด์ข้อมูลเป็น double (เพื่อให้รับจุดทศนิยมได้ และคำนวนได้)
2.เวลา post ให้ replace เอา comma ออกจากข้อมูลก่อน บันทึกลงฐานข้อมูล
3.ข้อมูลที่เก็บใน db จะเป็นตัวเลข ไม่มี comma หากต้องการแสดงผลแบบมี comma ให้จัดการใหม่อีกที

ปล. โดยปกติ ตอนกรอกข้อมูลเราจะไม่นิยมบังคับให้ใส่ comma ครับ เพื่อความสะดวก
#1

ได้แล้วคับ

ขอบคุณมากๆคับ
#2
ความคิดเห็น
ไฟล์อัปโหลด ชนิด jpg, jpeg ขนาดไฟล์ไม่เกิน 1024
^