جدا کردن ۳ به ۳ ارقام درون فیلد textBox

با سلام
من یه form طراحی کردم که درون اون چندتا فیلد هست و باید درونش قیمت وارد بشه و در آخر هم همه قیمت ها باهم جمع بشه و جمع اون جای دیگه نوشته بشه....
حالا من باید چکار کنم که ارقام ۳ به ۳ از هم جدا بشه ؟
و اینکه ارقام قابلیت جمع شدن با هم را داشته باشند....؟
کسی کد آماده یا اسکریپتی چیزی نداره کار ما راه بیوفته؟
چکار کنم :sad: ؟
 

iran-TEC

Member
سلام این تابع رو خودم نوشتم

PHP:
function insert_seperator($num) { 
       settype($num,"String");
       $n = strlen($num);
       $i = 0;
       $help = $n % 3;
       while ($help != 0) {
            $num = '0'.$num;
            $i++;
            $n = strlen($num);
            $help = $n % 3;
       }
       $arr = str_split($num,3);
       $str = "";
       foreach ($arr as $index) {
          $str = $str.",".$index;
       }
       $i++;
       return substr($str,$i);
   }
 


دوست عزیز ممنون از بابت لینکی که دادی . من از این لینک استفاده کردم وجواب هم داد .
ولی وقتی میخوام اعداد را جمع کنم و حاصل را چاپ کنم فقط 3 عدد سمت چپ با هم جمع میشند. چون اون علامت ( ، ) (کاما) بین اعداد هست و....
چکار کنم حالا ؟
یه سوال: اسکریپت و یا کدی هست که وقتی داخل textBox اعداد را می نویسیم همزمان 3 به 3 جدا کنه(بصورت آجاکس)؟؟ از کجا بیارم ؟ کسی داره ؟



سلام این تابع رو خودم نوشتم

PHP:
[LEFT]function insert_seperator($num) { 
       settype($num,"String");
       $n = strlen($num);
       $i = 0;
       $help = $n % 3;
       while ($help != 0) {
            $num = '0'.$num;
            $i++;
            $n = strlen($num);
            $help = $n % 3;
       }
       $arr = str_split($num,3);
       $str = "";
       foreach ($arr as $index) {
          $str = $str.",".$index;
       }
       $i++;
       return substr($str,$i);
   }
[/LEFT]
دوست عزیز کد چجوری کار مینه؟ طرز استفادش چطوریه ؟؟
 

Masoud1365

مدیر انجمن
خب شما فقط برای نمایش باید از اون تابع استفاده کنید !
عملیات رو روی متغیر که از نوع int هست انجام بدید .
 
خب شما فقط برای نمایش باید از اون تابع استفاده کنید !
عملیات رو روی متغیر که از نوع int هست انجام بدید .

مسعود جان شرمندم انقد پرحرفی میکنم...
چندتا نکته... یکی اینکه من میخوام همزمان که عدد تایپ میشه علامت کاما اتوماتیک اعداد را جدا کنه (AJAX) - و اینکه در هنگام جمع بندی اعداد قابلیت جمع شدن را داشته باشند و اون علامت کاما مانع جمع شدن نشه...
حالا شما راهی بلدید ؟ اسکریپت AJAX ندارید ؟:rose:
 

Masoud1365

مدیر انجمن
نیاز به استفاده از ای جکس ندارید ! باید با جاوا اسکریپت این کارو انجام بدید !
توی انجمنجاوا اسکریپت یه سرچی بزنید یادمه قبلا بحث شده بود !
موفق
 
با تشکر از همه دوستانی که راهنمایی کردن...

آقا مشکل جمع بندی اعداد را حل کردم...

فقط اگر دوستان یه زحمتی بکشن که کمک کنن مشکل تایپ همزمان حل بشه ممنون میشم(در هنگام تایپ علامت کاما (،) خودکار 3 به 3 اعداد را جدا کنه)
من داخل قسمت جاوا هم گشتم ولی چیزی پیدا نکردم
ممنون میشم لینکی.اسکریپتی.کدی .و چیزی واسم بذارین... کارم گیره

پیشاپیش ممنون
 

Army.Hidden

Active Member
توی گوگل و سایت های دیگه بگرد ببین میتونی کد جاوا اسکریپتش رو پیدا کنی.
من داشتم ولی هرچی گشتم پیدا نگردم :دی
 
پيدا شد....
هورااااااااااااااااااااااااااااااااااااااااااااااااااا...
جيغ بنفش.......


کد:
<html>
  <head>
    <script type="text/javascript">
      function intFormat(n)
      {
        var
          regex = /(\d)((\d{3},?)+)$/;
        
        n = n.split(',').join('');
        
        while(regex.test(n))
        {
          n = n.replace(regex, '$1,$2');
        }
        
        return n;
      }
      function numFormat(n)
      {
        var
          pointReg = /([\d,\.]*)\.(\d*)$/, f;
        
        if(pointReg.test(n))
        {
          f = RegExp.$2;
          return intFormat(RegExp.$1) + '.' + f;
        }
        return intFormat(n);
      }
    </script>
  </head>
  <body>
  <input type="text" style="text-align:right" onkeyup="this.value = numFormat(this.value)">
  </body>
</html>
 

amir59

Member
پيدا شد....
هورااااااااااااااااااااااااااااااااااااااااااااااااااا...
جيغ بنفش.......


کد:
<html>
  <head>
    <script type="text/javascript">
      function intFormat(n)
      {
        var
          regex = /(\d)((\d{3},?)+)$/;
        
        n = n.split(',').join('');
        
        while(regex.test(n))
        {
          n = n.replace(regex, '$1,$2');
        }
        
        return n;
      }
      function numFormat(n)
      {
        var
          pointReg = /([\d,\.]*)\.(\d*)$/, f;
        
        if(pointReg.test(n))
        {
          f = RegExp.$2;
          return intFormat(RegExp.$1) + '.' + f;
        }
        return intFormat(n);
      }
    </script>
  </head>
  <body>
  <input type="text" style="text-align:right" onkeyup="this.value = numFormat(this.value)">
  </body>
</html>

سلام دوست عزیز
من از این کد شما استفاده کردم و در زمان تاپپ بصورت 3 رقم از 3 رم با کاما جدا می شود ولی وقتی ذخیره میشود مثلا" عدد 1،000،000 را 1 و عدد 999،999 را 999 در دیتابیس ذخیره میکند به نظر شما مشکل از چه چیزب میباشد ؟
 
سلام دوست عزیز
من از این کد شما استفاده کردم و در زمان تاپپ بصورت 3 رقم از 3 رم با کاما جدا می شود ولی وقتی ذخیره میشود مثلا" عدد 1،000،000 را 1 و عدد 999،999 را 999 در دیتابیس ذخیره میکند به نظر شما مشکل از چه چیزب میباشد ؟


نمیدونم والا....:-?
واس من که خوب کار میکرد
 

hrdf

New Member
سلام دوست عزیز
من از این کد شما استفاده کردم و در زمان تاپپ بصورت 3 رقم از 3 رم با کاما جدا می شود ولی وقتی ذخیره میشود مثلا" عدد 1،000،000 را 1 و عدد 999،999 را 999 در دیتابیس ذخیره میکند به نظر شما مشکل از چه چیزب میباشد ؟

باید بری تو دیتا بیست ستونی که فیلد قیمت رو ذخیره می کنی تایپش رو عوض کنی احتمال قوی تایپش اینتیجر هستش بورو عوضش کن بزار var ch
 

جدیدترین ارسال ها

بالا