JavaScript ផ្ដល់​ភាព​ងាយស្រួល​សម្រាប់​អ្នក​បង្កើតកម្មវិធី​ប្ដូរ​ប្រាក់​ដាក់​លើ​វ៉ិបសាយ

JavaScript ជា​កម្មវិធី​ដ៏​មាន​ប្រជាប្រិយ​ភាព​មួយ​សម្រាប់​អ្នក​អភិវឌ្ឍន៍​វ៉ិបសាយ​ប្រកប​ដោយ​ភាព​ទាក់ទាញ​និង​រស់​រវើក​គូរ​ឱ្យ​ចង់​ទស្សនា​ព្រមទាំង​មិន​ធ្វើ​ឱ្យ​ដំណើរការ​គេហទំព័រ​យឺត​ទៀត​ផង។​នៅ​ខាង​ក្រោម​នេះ​យើង​ខ្ញុំ​និង​លើក​យក​របៀប​បង្កើត​ទម្រង់​ឬ Form សម្រាប់​ឱ្យ​អ្នក​ទស្សនា​អាច​ពិនិត្យ​ពី​កម្រិត​តម្លៃ​រវាង​រូបិយប័ណ្ណ​របស់​ប្រទេស​នីមួយ​នៃ​លើ​គេហទំព័រ​បាន​យ៉ាង​ស្រួល។

១-ដើម្បី​អនុវត្ត​ជា​ដំបូង​យើង​ត្រូវ​បង្កើត​ file ​មួយ​ឈ្មោះ​ថា ​convert.html​ដើម្បី​ឱ្យ​វា​ដំណើរការ​ផ្ទាល់​នៅ​កូដ ​HTML។
២-​បើក​ file convert.html​ ដើម្បី​បំពេញ​កូដ​ JavaScript​មាន​ tag: ​<script language=“javascript1.2“> … </script>​
៣-​ប្រកាស​អញ្ញាត​មួយ​ឈ្មោះ​ថា factors ​សម្រាប់​ផ្ទុក​រូបិយប័ណ្ណ​តាម​ឯក​កត្តា​នីមួយៗ​និង​អញ្ញាត​ឈ្មោះ​ថា​ gbrt​ ដំណាង​ឱ្យ​​រូបិយប័ណ្ណ​នៃ​ប្រទេស​នីមួយៗ។

<script language=“javascript1.2“>​
var factors=[1.380,1,0.8702,107.226,7.4435,1.9558,295.05,3.4528,0.7056,4.3284,9.1202,1.238,7.781,1.3684,1.3988,10.781,1593.88,1.7462,1.751,10.8185,24.779,5655.240,42.463,29463.000,4.340];
var gbrt=[“US dollar USD“,“Euro EUR“,“Pound sterling GBP“,“Japanese yen JPY“,“Danish krone DKK“,“Bulgarian lev BGN“,“Hungarian forint HUF“,“Lithuanian litas LTL“,“Latvian lats LVL“,“Polish zloty PLN“,“Swedish krona SEK“,“Swiss franc CHF“,“Norwegian krone NOK“,“Australian dollar AUD“,“Canadian dollar CAD“,“Hong Kong dollar (HKD)“,“South Korean won KRW“,“New Zealand dollar NZD“,“Singapore dollar SGD“,“South African rand ZAR“,“Czech koruna CZK“,“Cambodia Riel“,“Thai Baht“,“Vietnam VND“,“Malaysian MSR“];
</script>

៤-​បង្កើត function​ មាន​រូបមន្ត​ទូទៅ ​function funtion_name() { }​ សម្រាប់​ហៅ​function_name​ យក​ទៅ​ប្រើ​នៅ​ប្លុក​ទីណា​មួយ​ដែល​អ្នក​ចង់​ប្រើ​វា​បាន ​function fix(v){ } ​ដើម្បី​ធ្វើការ​ប្រៀបធៀប​តម្លៃ​នៃ​ប្រអប់​បញ្ចូល​ចំនួន​ទឹក​ប្រាក​ទាំង​ពីរ។
-v ជា​អញ្ញាត​សម្រាប់​ផ្ទុក​តម្លៃ​នៅ​អង់​ទាំង​ពីរ​នៃ ​factors ​និង gbrt ។

<script language=“javascript1.2“>
var ​factors=[1.380,1,0.8702,107.226,7.4435,1.9558,295.05,3.4528,0.7056,4.3284,9.1202,1.238,7.781,1.3684,​1.3988,​10.781,1593.88,1.7462,1.751,10.8185,24.779,5655.240,42.463,29463.000,4.340];
var gbrt=[“US dollar USD“,“Euro EUR“,“Pound sterling GBP“,“Japanese yen JPY“,“Danish krone DKK“,“Bulgarian lev BGN“,“Hungarian forint HUF“,“Lithuanian litas LTL“,“Latvian lats LVL“,“Polish zloty PLN“,“Swedish krona SEK“,“Swiss franc CHF“,“Norwegian krone NOK“,“Australian dollar AUD“,“Canadian dollar CAD“,“Hong Kong dollar (HKD)“,“South Korean won KRW“,“New Zealand dollar NZD“,“Singapore dollar SGD“,“South African rand ZAR“,“Czech koruna CZK“,“Cambodia Riel“,“Thai Baht“,“Vietnam VND“,“Malaysian MSR“];
function fix(v){
// isFinite() ជា​អ្នក​ត្រួតពិនិត្យ​មើល​តម្លៃ​ដែល​បាន​ដាក់​ចូល​វា​ត្រូវ​ជាមួយ​តម្លៃ​ដែល​យើង​បាន​កំណត់​នៅ​ក្នុង​នោះ​ឬ​ទេ​ហើយ​វា​ផ្ដល់ false ប្រសិនបើ​តម្លៃ​របស់​វា​គឺ​ +infinity,​ -finity ​ឬ​ NaN(Not a Null)។

if (!isFinite(v)) return ““;

\\វា​និង​ផ្ដល់​តម្លៃ 0 ប្រសិនបើ​យើង​បោះ​តម្លៃ​ចូល​លេខ 0។

if (v==0) return “0“;
\\ប្រកាស​អញ្ញាត st សម្រាប់​ចាប់​យក​តម្លៃ​ដែល​បាន​បោះ​ចូល​តាមរយៈ v​។

st=““+v;

\\indexOf() ជា​រូបមន្ត​មួយ​សម្រាប់​ផ្ដល់​មុខងារ​ឱ្យ​នៅ​ពេល​វា​បាន​ជួប​តម្លៃ​ពិតប្រាកដ​ដំបូង​នៅ​ក្នុង​ sting ​ វា​បោះ​តម្លៃ-1 ប្រសិនបើ​ជួប​តម្លៃ​ថ្មី។

epos=st.indexOf(‘E’);
if (epos==-1)
epos=st.indexOf(‘e’);

\\Math.log() វា​ជា​អ្នក​បោះ​តម្លៃ​ទូទៅ​មួយ​ដោយ​អាស្រ័យ​លើ E។
\\ Math.abs() ​វា​បោះ​តម្លៃ​ពិត​ឬ​ហៅ​ថា return value នៃ​ចំនួន​លេខ​មួយៗ។
\\Math.LN10​បោះ​តម្លៃ​ជា​លោការីត​ឬ logarithm នៃ 10។
sdigi=Math.log(Math.abs(v)) / Math.LN10;ឮ
\\ Math.floor() សម្រាប់​ផ្ដល់​តម្លៃ​ផ្សេងៗ​គ្នា។
sdigif=Math.floor(sdigi);
if (epos==-1){
\\ Math.pow() ជា​រូបមន្ត​សម្រាប់​បោះ​តម្លៃ​ពី​ក្នុង​ពេល​តែមួយ​។
adjust=Math.pow(10, sdigif-7);
\\round() ធ្វើ​ឱ្យ​ចំនួន​ទាំង​អស់​ងាក​ទៅ​ជិត​ចំនួន integer។

faqs=Math.round(v/adjust);
norst=““+faqs;
if (sdigif<7){
adjust2=Math.pow(10, 7-sdigif);
return (faqs / adjust2);
}
else return (faqs*adjust);
}
else {
zo=v*Math.pow(10, 7-sdigif);
szo=String(Math.round(zo));
inse=-1;
if (szo.charAt(0)==’-') inse=2;
else inse=1;
rest=szo.substring(inse,szo.length);
i=rest.length-1;
while (i>=0 && rest.charAt(i)==’0′)
i–;
rest=rest.substring(0,i+1);
rou=szo.substring(0,inse);
if (rest.length>0) rou += “.“+rest;
if (sdigif<0) sa=rou+“E“;
else sa=rou+“E+“;
snow=sa+sdigif;
\\ parseFloat() ប្រើ​សម្រាប់​បង្ហាញ​លទ្ធផល​ជា​លេខ​រាល​ចំនួន​ទាំង​ឡាយ​ណា​ដែល​មាន​លេខ​នៅ​ខាង​មុខ។
vanow=Math.abs(parseFloat(snow));
faqsvab=Math.abs(v);
if (sdigif>=0){
if (vanow>5*faqsvab)
snow=sa+String(sdigif-1);
else if (vanow<faqsvab/5)
snow=sa+String(sdigif+1);
}
else if (sdigif>=0){
if (vanow>5*faqsvab)
snow=sa+String(sdigif+1);
else if (vanow<faqsvab/5)
snow=sa+String(sdigif-1);
}
vanow=parseFloat(snow);
if (vanow>1.1*v || vanow<0.9*v) return v;
else return snow;
}
}
\\ បង្កើត function សម្រាប់​បម្លែង​ទឹក​ប្រាក់​ដែល​អ្នក​បាន​បោះ​បញ្ចូល​និង​ជ្រើសរើស​យក​ចេញពី Select នៃ​ធាតុ​ឬ​ឈ្មោះ​នីមួយៗ​ដោយ​ឈ្មោះ​ថា convert()។
function convert(){
\\បោះ​តម្លៃ​បញ្ចូល​ដែល​មិន​មែន​ជា​អក្សរ​ឬ​បោះ​តម្លៃ​បញ្ចូល​ខុស​ពី String។
isNS4=(document.layers) ? true : false;
\\កំណត់​ជា​ប្រភេទ ID ។
isIE4=(document.all && !document.getElementById) ? true : false;
isIE5=(document.all && document.getElementById) ? true : false;
isNS6=(!document.all && document.getElementById) ? true : false;
myform=document.forms['cform'];
w1=myform.D1.options[myform.D1.selectedIndex].value;
w2=myform.D2.options[myform.D2.selectedIndex].value;
faqsorg=factors[w2]/factors[w1];
resfaqs=myform.T1.value*faqsorg;
if (isNaN(parseFloat(resfaqs)))
myform.T2.value=““;
else
{
myform.T2.value=fix(parseFloat(resfaqs))+“ “;
}
}
</script>

៥-​សរសេរ​កូដ HTML ដើម្បី​បង្កើត​ទម្រង់​សម្រាប់​បញ្ចូល​ចំនួន​ទឹក​ប្រាក់​និង​ប្រអប់​សម្រាប់​ជ្រើសរើស​ប្រភេទ​ឬ​ឈ្មោះ​សម្រាប់​ដំណាង​ឱ្យ​រូបិយប័ណ្ណ​នៃ​ប្រទេស​នីមួយៗ។
</HEAD>
\\ onLoad=“convert()“ ប្រើ​ដើម្បី​កូដ JavaScript មាន​សកម្មភាព​ដោយ​ស្វ័យប្រវត្ត​នៅ​ពេល page ដំណើរការ។
<BODY onLoad=“convert()“>
\\ បង្កើត form មាន​ឈ្មោះ​ថា cform។
<form method=“post“ name=“cform“>
<table border=“3“ bgcolor=“#d9d9d9“>
\\ T1 & T2 ជា​ឈ្មោះ Text box ហើយ keyword onChange= “function_name()“ នៅ​ពេល​អ្នក​បាន​ធ្វើការ​កែប្រែ​នៅ​ក្នុង Text box វា​និង​ប្រែប្រួល​តម្លៃ​ដែរ។
<tr><td>From:<input name=“T1“ value=“1“ onChange=“convert()“ onKeyUp=“convert(); return true“>
<td>To:<input name=“T2“ value=“1“ onChange=“convert()“ readOnly>
<tr><td>
\\ប្រើ Select ដើម្បី​ដាក់​ជម្រើស​ឱ្យ​យើង​អាច​ជ្រើសរើស​យក​ជម្រើស​មួយ​ក្នុង​ចំណោម​ជម្រើស​ជា​ច្រើន​ដែល​អ្នក​បាន​បញ្ចូល​ដោយ​ប្រើ ​option tag។
<select name=“D1“ onClick=“convert()“ onChange=“convert()“>
//ប្រើ Option tag ដើម្បី​ដាក់​ជម្រើស​សម្រាប់​ជ្រើសរើស​ប្រសិន​បើ​ពូក​គេ​ចង់​ការ​ប្ដូរ​ប្រាក់​បី​រូបិយប័ណ្ណ​មួយ​ទៅ​រូបិយប័ណ្ណ​មួយ​ផ្សេង​ទៀត។
<option selected value=“0“>US dollar USD</option>
<option value=“1“>Euro EUR</option>
<option value=“2“>Pound sterling GBP</option>
<option value=“3“>Japanese yen JPY</option>
<option value=“4“>Danish krone DKK</option>

<option value=“5“>Bulgarian lev BGN</option>
<option value=“6“>Hungarian forint HUF</option>
<option value=“7“>Lithuanian litas LTL</option>
<option value=“8“>Latvian lats LVL</option>
<option value=“9“>Polish zloty PLN</option>
<option value=“10“>Swedish krona SEK</option>
<option value=“11“>Swiss franc CHF</option>
<option value=“12“>Norwegian krone NOK</option>
<option value=“13“>Australian dollar AUD</option>

<option value=“14“>Canadian dollar CAD</option>
<option value=“15“>Hong Kong dollar HKD</option>
<option value=“16“>South Korean won KRW</option>
<option value=“17“>New Zealand dollar NZD</option>
<option value=“18“>Singapore dollar SGD</option>
<option value=“19“>South African rand ZAR</option>
<option value=“20“>Czech koruna CZK</option>
<option value=“21“>Cabodia KHR</option>
<option value=“22“>Thai THB</option>
<option value=“23“>Vietnam VND</option>
<option value=“24“>Malaysian MSR</option>
</select>

</td><td>
<select name=“D2“ onChange=“convert()“>
<option selected value=“0“>US dollar USD</option>
<option value=“1“>Euro EUR</option>
<option value=“2“>Pound sterling GBP</option>
<option value=“3“>Japanese yen JPY</option>
<option value=“4“>Danish krone DKK</option>
<option value=“5“>Bulgarian lev BGN</option>
<option value=“6“>Hungarian forint HUF</option>

<option value=“7“>Lithuanian litas LTL</option>
<option value=“8“>Latvian lats LVL</option>
<option value=“9“>Polish zloty PLN</option>
<option value=“10“>Swedish krona SEK</option>
<option value=“11“>Swiss franc CHF</option>
<option value=“12“>Norwegian krone NOK</option>
<option value=“13“>Australian dollar AUD</option>
<option value=“14“>Canadian dollar CAD</option>
<option value=“15“>Hong Kong dollar HKD</option>

<option value=“16“>South Korean won KRW</option>
<option value=“17“>New Zealand dollar NZD</option>
<option value=“18“>Singapore dollar SGD</option>
<option value=“19“>South African rand ZAR</option>
<option value=“20“>Czech koruna CZK</option>
<option value=“21“>Cabodia KHR</option>
<option value=“22“>Thai THB</option>
<option value=“23“>Vietnam VND</option>
<option value=“24“>Malaysian MSR</option>

</select>
</td></tr>
</table>
</form>
</BODY>
</HTML>
៦-ដំណើរការ​កម្មវិធី​នោះ​អ្នក​ទទួល​បាន​លទ្ធផល​ដូច​ខាង​ក្រោម។

៧-លទ្ធផល​ក្រោយ​ពី​អ្នក​ជ្រើសរើស​យក​អ្នក​ទទួល​បាន​តាម​ការ​កំណត់​របស់​អ្នក​ដូច​ខាង​ក្រោម។

រក្សាសិទ្ធិគ្រប់យ៉ាងដោយទស្សនាវដ្តីវិទ្យាសាស្រ្តកុំព្យូទ័រ ចេញផ្សាយឆ្នាំ ២០១២