Tolong pilih kategori sesuai, jenis posting (diskusi atau bukan) dan sertakan tag/topik yang sesuai seperti komputer, java, php, mysql, dll. Promosi atau posting tidak pada tempatnya akan kami hapus!
- Bagi Anda yang ingin mendaftar, baca link berikut:
http://diskusiweb.com/discussion/50491/how-to-registrasi-diskusiweb-com-baca-ini-terlebih-dahulu
- Cara menyisipkan kode program supaya tampil rapi dan terformat dengan baik di diskusiweb.com: http://www.diskusiweb.com/discussion/50415/cara-menyisipkan-kode-program-di-diskusiweb-com
- Cara posting gambar/image di post Anda: http://www.diskusiweb.com/discussion/47345/cara-menyisipkan-menyertakan-image-pada-posting/p1

penjumlahan ribuan dengan javascript

selamat siang para master sekalian,

kalau mau penjumlahan atau pengurangan ribuan di javascript bagaimana yah???
aku buat tidak jalan2
coding java nya ini

<script><!-- function startCalc(){ interval = setInterval("calc()",1);} function calc(){ pu_rp1 = document.autoSumForm.pu_rp1.value; pu_rp2 = document.autoSumForm.pu_rp2.value; pu_rp3 = document.autoSumForm.pu_rp3.value; pu_rp4 = document.autoSumForm.pu_rp4.value; pu_rp5 = document.autoSumForm.pu_rp5.value; document.autoSumForm.jpu_rp.value = (pu_rp1*1)+(pu_rp2*1)+(pu_rp3*1)+(pu_rp4*1)+(pu_rp5*1);} function stopCalc(){ clearInterval(interval);} </script>

tolong pencerahan nya master sekalian.....
javascritp ini aku jalankan di php punya.

terima kasih...

Comments

  • coba liat di console dulu, uda pake format Number belum valuenya ?
    Dulu gw pernah ngalamin kaya gitu (Ngitung gaji) masalahnya ada di value yang bukan Number.
  • @k4zuk1 set valuenya di javascriptnya dengan parseInt()
    contoh var z = parseInt($(".x").val());
  • tq semua, sudah bisa, seperti yang di bilang sama master @blackarch
  • itu kenapa sih pake interval ?

    tau maksudnya
    tapi buat apa ?
    lha wong ndak pake interval juga jalan
  • format untk valuenya mungkin salah gan, harusnya formatnya "Number"
    atau set valuenya di javascript dengan parseInt()
  • tq master sudah fix tinggal tambah parseInt(), tq all
  • master, saya ada problem baru lagi di perhitungan javascript, saya mau buat perhitungan seperti di gambar

    image

    untuk baris pertama sudah bisa jalan otomatis untuk harga nya, cuman pas pada baris ke 2 dan selanjutnya tidak mau lagi jalan otomatis perhitungan nya

    untuk javascriptnya
    <script type="text/javascript"> function penjualanA(){ var qty1 = document.getElementById("qty").value; var harga1= document.getElementById("harga").value; qty = qty1.replace(/[^0-9]/g, ''); harga = harga1.replace(/[^0-9]/g, ''); var tharga = (qty*1)*(harga*1); document.getElementById("tharga").value = tharga.toLocaleString(); } </script>

    untuk perintah phpnya

    <table class='w3-table w3-tiny w3-hoverable tbl'> <tr class='w3-blue'> <th width='5%'>#</th> <th width='50%'>DESKRIPSI</th> <th width='13%'>BTG</th>"; if($n_ton>=0.5){ echo " <th width='15%'>HARGA</th> <th width='15%'>T.HARGA</th>"; }elseif($n_ton<0.5){ echo " <th width='15%'>INCHI</th> <th width='15%'>HARGA</th>"; } echo " <th width='2%'>&nbsp;</th> </tr> <tbody>"; $sql_tmp = mysql_query("SELECT a.kode_barang, a.qty, a.harga, b.nama, b.p, b.l, b.t, b.nilai, a.disc FROM db_detail_penjualan_tmp a, db_barang b WHERE a.kode_barang = b.kode AND a.user = '$_SESSION[login_id]' ORDER BY a.date ASC") or die(mysql_error()); $no = 1; $sub_total = 0; $total_harga = 0; if(mysql_num_rows($sql_tmp) > 0){ while($b = mysql_fetch_assoc($sql_tmp)) { $t_qty = $t_qty + $b['qty']; echo"<tr style='border-bottom:1px dashed #ccc;'> <td>$no</td> <td>$b[nama]</br>UK. $b[p] x $b[l] x $b[t]</td> <td><div align='right'> ".number_format($b['qty'])." <input type='hidden' name='qty' id='qty' value='$b[qty]'> </div></td>"; if($n_ton>=0.5){ echo " <td width='10%'><input type='text' name='harga' id='harga' class='w3-select w3-border w3-hover-grey w3-right-align' value='0' onkeyup='penjualanA()'></th> <td width='10%'><input type='text' name='tharga' id='tharga'' class='w3-select w3-border w3-hover-grey w3-right-align' value='0'></th>"; }elseif($n_ton<0.5){ echo " <td width='10%'><input type='text' name='harga' id='harga' class='w3-select w3-border w3-hover-grey w3-right-align kanan' value='0' onkeyup='penjualanA()'></th> <td width='10%'><input type='text' name='tharga' id='tharga' class='w3-select w3-border w3-light-grey w3-right-align' value='0' readonly></th>"; } echo " <td><div align='right'><a href='$aksi?mod=penjualan&act=batal&id=$b[kode_barang]' onclick=\"return confirm('Yakin ingin membatalkan?');\"><i class='fa fa-close w3-tiny w3-text-red'></i></a></div></td> </tr>"; $no++; } }else{ echo"<tr> <td colspan='4'><center><i>Keranjang Kosong</i></center></td> </tr>"; } echo"</tbody> <tfoot> <tr> <td colspan='2'><b>TOTAL</b></td> <td><b class='w3-text-red w3-small w3-right'>".number_format($t_qty)."</b></td>"; if($n_ton>=0.5){ echo " <td>HARGA</th> <td>T.HARGA</th>"; }elseif($n_ton<0.5){ echo " <td><b class='w3-text-red w3-small w3-right'>".number_format($harga)."</b></th> <td><b class='w3-text-red w3-small w3-right'>".number_format($tharga)."</b></th>"; } echo " </tr> <tr> <td colspan='2'><b>POTONGAN HARGA (Rp.)<b></td> <td colspan='2'><input type='text' name='potongan' id='potongan' class='w3-input w3-border w3-tiny w3-right-align' value='0'></td> </tr> <tr style='border-top:1px dashed #ccc;'> <td colspan='2'><b class='w3-text-blue'>TOTAL BAYAR</b><td> <td colspan='2'><b class='w3-text-red w3-small w3-right'><span id='tot'>0</span></b></td> </tr> </tfoot> </table

    itu salah dimana yah master, kalau mau pakar array saya masi ga gt paham masalah array master...^^v maklum belajar otodidak
  • edited January 15
    di satu halaman html, tidak boleh ada element dgn ID yg sama.
    kalo pun ada, jika diambil pake getElementById, yg terambil cuma yg pertama.

    while($b = mysql_fetch_assoc($sql_tmp)) {

    <input type='hidden' name='qty' id='qty' value='$b[qty]'>
    <input type='text' name='harga' id='harga' ... value='0' onkeyup='penjualanA()'>
    <input type='text' name='tharga' id='tharga'' ... value='0'>

    }

    itu pasti ID nya bakal kembar semua

    btw kayanya ada yg salah ketik :
    <input type='text' name='tharga' id='tharga'' ... value='0'>

    itu yg bold ... "double single quote" ...
    bukan double quote ... tapi sinlge quote 2 biji.



    kenapa ID ndak boleh kembar ...
    coba aja ini :
    <script>
    function getElement(id) {
    for(i=1;i<=3;i++) {
    alert(document.getElementById(id).value);
    }
    }
    </script>
    <input id="test" type="text" name="test[]" value="abc"><br>
    <input id="test" type="text" name="test[]" value="def"><br>
    <input id="test" type="text" name="test[]" value="ghi"><br>
    <input type="button" value="getElementById" onclick="getElement('test')">
    kalo elo klik button nya, bisa ambil 3 element yg ID nya kembar ?



    element yg mau elo ambil value nya itu multi / banyak.
    jadi elo harus pake method yg sesuai, yg bisa ambil banyak juga.
    atau kalo tetep pake yg single, ya ID nya dibedakan, ambil sebanyak element yg ada.

    pake .getElementsByTagName
    <script>
    function getElement(tag) {
    var elements=document.getElementsByTagName(tag);
    for(idx in elements) {
    if(elements[idx].id=="test") {
    alert(elements[idx].value);
    }
    }
    }
    </script>
    <input id="test" type="text" name="test[]" value="abc"><br>
    <input id="test" type="text" name="test[]" value="def"><br>
    <input id="test" type="text" name="test[]" value="ghi"><br>
    <input type="button" value="getElementByTagName" onclick="getElement('INPUT')">
    pake .getElementsByName
    <script>
    function getElement(name) {
    var elements=document.getElementsByName(name);
    for(idx in elements) {
    if(elements[idx].id=="test") {
    alert(elements[idx].value);
    }
    }
    }
    </script>
    <input id="test" type="text" name="test[]" value="abc"><br>
    <input id="test" type="text" name="test[]" value="def"><br>
    <input id="test" type="text" name="test[]" value="ghi"><br>
    <input type="button" value="getElementByName" onclick="getElement('test[]')">
    bedakan ID nya
    <script>
    function getElement(id) {
    for(i=1;i<=3;i++) {
    alert(document.getElementById(id+i).value);
    }
    }
    </script>
    <input id="test1" type="text" name="test[]" value="abc"><br>
    <input id="test2" type="text" name="test[]" value="def"><br>
    <input id="test3" type="text" name="test[]" value="ghi"><br>
    <input type="button" value="getElementById" onclick="getElement('test')">
  • Mantap pencerahan nya master @labalaba akan saya coba kembali pakai salah satu cara di atas....

    Tq
  • sudah jalan master @labalaba seperti ini

    <script type="text/javascript"> function penjualanA(id1,id2,id3){ var qtya = document.getElementById(id1).value; var hargaa= document.getElementById(id2).value; qty = qtya.replace(/[^0-9]/g, ''); harga = hargaa.replace(/[^0-9]/g, ''); var tharga = (qty*1)*(harga*1); document.getElementById(id3).value = tharga.toLocaleString(); document.getElementById("th").value = toni; } function penjualanB(id1,id2,id3){ var tona = document.getElementById(id1).value; var hargaa= document.getElementById(id2).value; ton = tona.replace(/[^0-9]/g, ''); harga = hargaa.replace(/[^0-9]/g, ''); var tharga = ((ton*1)*(harga*1))/10000; document.getElementById(id3).value = tharga.toLocaleString(); } </script>

    kalau saya mau jumlah kan ke bawah java nya mau gmn yah? jadi kalau kita ketik di input nya langsung nilai di total jumlah saya, coba pakai fungsi for dalam java nya ga jlan, jadi melakukan perulangan di total jumlah barisnya...
  • edited January 16
    lhah ?

    gw kan kagak tau form elo sekarang kaya apa.

    lagian juga sudah ditunjukin di atas kalo mau ambil multi kaya apa.
    ndak bakal jauh2 dari itu.

    tapi tetep ...
    liat form nya, baru bisa tau solusinya kaya apa.
  • edited January 18
    ini model form saya sekarang master @labalaba

    image

    sekarang saya sudah dapat penjumlahan sesuai dengan jumlah baris yang saya mau, coding nya ini master

    http://codepad.org/SRVQcGVS

    Javascritp nya

    <script type="text/javascript"> function penjualanA(id1,id2,id3){ var qtya = document.getElementById(id1).value; var hargaa= document.getElementById(id2).value; qty = qtya.replace(/[^0-9]/g, ''); harga = hargaa.replace(/[^0-9]/g, ''); var tharga = (qty*1)*(harga*1); document.getElementById(id3).value = tharga.toLocaleString(); } function penjualanB(id1,id2,id3){ var tona = document.getElementById(id1).value; var hargaa= document.getElementById(id2).value; ton = tona.replace(/[^0-9]/g, ''); harga = hargaa.replace(/[^0-9]/g, ''); var tharga = ((ton*1)*(harga*1))/10000; document.getElementById(id3).value = tharga.toLocaleString(); } </script>

    saya ada coba gini juga tp ga jalan

    function penjualanA(id1,id2,id3){ var nilai = document.getElementById("nilai").value; var qtya = document.getElementById(id1).value; var hargaa= document.getElementById(id2).value; qty = qtya.replace(/[^0-9]/g, ''); harga = hargaa.replace(/[^0-9]/g, ''); var tharga = (qty*1)*(harga*1); document.getElementById(id3).value = tharga.toLocaleString(); var x; var gtharga = 0; for(x = 0; x <= nilai; x++){ var gtharga = gtharga+tharga; } document.getElementById(gtharga).value = gtharga.toLocaleString(); } function penjualanB(id1,id2,id3){ var nilai1 = document.getElementById("nilai").value; var tona = document.getElementById(id1).value; var hargaa= document.getElementById(id2).value; nilai = nilai1.replace(/[^0-9]/g, ''); ton = tona.replace(/[^0-9]/g, ''); harga = hargaa.replace(/[^0-9]/g, ''); var tharga = (ton*1)*(harga*1)/10000; document.getElementById(id3).value = tharga.toLocaleString(); var x; var gtharga = 0; for(x = 0; x <= nilai; x++){ var gtharga = gtharga+tharga; } document.getElementById("gtharga").value = gtharga.toLocaleString(); } </script>

    untuk total di T.HARGA masi salah master nilainya
    tolong dikoreksinya master

    tq...^^
  • cuma ketemu ini di dalam while ...
    <input type='text' name='ton$no' id='ton$no' value='".number_format($b['ton'],4,'.',',')."' readonly>
    <input type='text' name='harga$no' id='harga$no' value='0' onkeyup=penjualanB('ton$no','harga$no','tharga$no')>
    <input type='text' name='tharga$no' id='tharga$no' value='0' readonly>

    <input type='text' name='harga$no' id='harga$no' value='0' onkeyup=penjualanA('qty$no','harga$no','tharga$no')>
    <input type='text' name='tharga$no' id='tharga$no' value='0' readonly>
    elo pake model yg ID dibedakan ...
    ok, ndak masalah.



    cuma jadi aneh karena NAME nya juga elo bedakan :D

    itu emang isiannya ndak di kirim balik ke server ?
    soalnya gw ndak ketemu <form></form> yg melingkupi <input> itu.

    elo cuma mengirim ke server HANYA total nya ?
    rinciannya ndak dikirim balik ?

    coba jelasin dulu alur yg mau elo pake.

    jadi gw juga ndak perlu menyarankan hal-hal yg emang ndak elo butuhkan.
  • edited January 19
    master @labalaba untuk <form></form> nya lupa saya naikan ke atas, seharusnya ada di

    <tbody><input type='text' name='nilai' id='nilai' value='".$jsql_temp."'>"; $sql_tmp = mysql_query("SELECT a.kode_barang, a.qty, a.harga, b.nama, b.p, b.l, b.t, b.nilai, a.ton FROM db_detail_penjualan_tmp a, db_barang b WHERE a.kode_barang = b.kode AND a.jfaktur = '$_GET[jfaktur]' AND a.user = '$_SESSION[login_id]' ORDER BY a.date ASC") or die(mysql_error());

    trus untuk name saya bedakan karena akan disimpan di database makanya saya bedakan, apakah tidak perlu di bedakan master?

    jadi alur nya sepertinya master,

    saya mau setelah input harga untuk total harga juga otomatis, trus total yg bawah juga otomatis, setelah siap semua saya tinggal masukan potongan nama pelanggan pembayran sama jenis pembayaran saja, setelah itu nanti baru klik tombol simpan untuk disimpan kedatabase dengan semua data tersebut.
  • edited January 20
    kalo ID, ndak masalah pake cara elo ...



    tapi kalo NAME, itu nanti hubungannya dgn cara baca value yg diterima lewat ... misal $_POST (gw ndak tau method yg elo pake)

    kalo elo pake model : name='harga$no'

    jadinya :
    harga1
    harga2
    harga3

    $_POST jadinya sama :
    $_POST['harga1']
    $_POST['harga2']
    $_POST['harga3']

    kalo elo mau baca isinya jadi lebih panjang alurnya.

    [a]
    kalo mau bikin loop ... for($i=1 ; $i < ??? ; $i++) {...}
    ada brp jumlah $_POST'harga...'] nya ?

    ada cara buat ngakalin ...
    pake input hidden di <form> nya yg isinya jumlah max isian, misal
    <input type="hidden" name="max" value="3">

    jadinya :
    for($i=1 ; $i < $_POST['max'] ; $i++) {echo $_POST['harga'.$i];}

    [b]
    kalo pake foreach() juga ndak bisa, itu indexnya beda2, mesti pake if()

    foreach($_POST as $key=>$val) {
    if(substr($key,0,5)=='harga') {echo $_POST[$key];} // dicari yg nama index nya dimulai dgn kata "harga"
    }

    tapi itu artinya semua isian $_POST harus diperiksa 1-1

    [c]
    kalo pake while ...

    $i=1;
    while(isset($_POST['harga'.$i])) { // dicari index "harga" + nomor urut yg ada isinya
    echo $_POST['harga'.$i];
    $i++;
    }

    masih ada cara yg lain ... tapi tetep lebih ribet.



    belum kalo index nya ndak urut ...

    itu <input> elo ada fungsi bisa hapus isian.
    jadinya ada kemungkinan urutannya loncat :
    harga2
    harga5
    harga6
    harga7
    harga9

    dari 3 cara yg gw tunjukin, yg bisa dipake cuma cara [b].
    tapi itu artinya semua isi $_POST harus diperiksa 1-1.
    ndak efektif dan efisien.



    sampai di sini paham ya ?

    itu baru urusan dgn isian yg diterima di php nya :D
  • edited January 20
    urusan di javascript nya ...

    elo mau menjumlah seluruh total nya ...
    artinya tiap <input> yg NAME atau ID nya sama, harus dijumlahkan.

    sementara ID elo beda (ya emang harus beda)
    NAME elo juga beda

    dari cara yg sudah gw tunjukin, yg tersisa bisa dipake cuma yg .getElementsByTagName
    function total() {
    var elements=document.getElementsByTagName("INPUT");
    var tharga=0;
    for(idx in elements) {
    if(elements[idx].id.substr(0,5)=="harga") { // dicari yg ID nya diawali kata "harga"
    tharga+=(elements[idx].value*1);
    }
    }
    document.getElementById("total").value=tharga;
    }
    bisa jalan.
    tapi itu artinya fungsi harus melakukan scanning ke seluruh tag <input> yg ada di halaman itu.
    mencari yg ID-nya diawali dgn "harga" ...

    jalan, tapi ndak efektif dan efisien.

    dan bisa jadi bermasalah kalo elo punya <input> lain yg juga punya ID "harga..." dgn tujuan yg berbeda.

    misal :
    <input name="hargatotal" id="hargatotal">
    <input name="hargadiskon" id="hargadiskon">

    2 input itu juga pasti dianggap 1 kelompok yg harus dijumlahkan .value nya

    bisa pake regex, /^harga\d+$/gi
    atau pengecekan string setelah "harga" harus angka
    tapi tetep ... bikin prosesnya tambah panjang.
  • edited January 20
    beda cerita kalo elo pake model :
    <input name="harga[]" id="harga$no">

    jadinya :
    <input name="harga[]" id="harga1" value="a">
    <input name="harga[]" id="harga2" value="b">
    <input name="harga[]" id="harga3" value="c">

    kalo pun nomor nya ndak urut :
    <input name="harga[]" id="harga2" value="a">
    <input name="harga[]" id="harga6" value="b">
    <input name="harga[]" id="harga9" value="c">



    di php yg menerima isian form :

    yg ada hanya : $_POST['harga']

    urut atau ndak urut tetap jadinya sama :
    $_POST['harga'] = array(
    0 => 'a',
    1 => 'b',
    2 => 'c'
    );

    itu elo bisa efektif pake foreach() :

    foreach($_POST['harga'] as $key=>$val) {
    echo $_POST['harga'][$key];
    }



    di javascript nya juga bisa efektif pake :
    function total() {
    var elements=document.getElementsByName("harga[]");
    var tharga=0;
    for(idx in elements) {
    tharga+=(elements[idx].value*1);
    }
    document.getElementById("total").value=tharga;
    }
    hanya <input> dgn NAME harga[] saja yg diambil dan diproses.
  • edited January 20
    kalo elo punya isian yg berkesesuaian ...
    misal :

    <input name="jml[]" id="jml2" value="2"> x <input name="harga[]" id="harga2" value="100"> = <input id="sub2">
    <input name="jml[]" id="jml6" value="1"> x <input name="harga[]" id="harga6" value="1500"> = <input id="sub6">
    <input name="jml[]" id="jml9" value="3"> x <input name="harga[]" id="harga9" value="800"> = <input id="sub9">

    <input id="total">



    di php yg menerima isian <form>
    yg diterima :

    $_POST['jml'] = array(
    0 => '2',
    1 => '1',
    2 => '3'
    );

    $_POST['harga'] = array(
    0 => '100',
    1 => '1500',
    2 => '800'
    );

    bisa di proses :

    $total = 0;
    foreach($_POST['jml'] as $key=>$val) {

    $jml = $_POST['jml'][$key];
    $harga = $_POST['harga'][$key];

    $sub = $jml * $harga;
    $total += $sub;

    }
    echo $total;

    $total & $sub sebaiknya dihitung ulang. isian form bisa dimanipulasi.
    bukan paranoid, tapi waspada.



    di javascript nya :
    function total() {
    var elements=document.getElementsByName("jml[]");
    var tharga=0;
    var tsub=0;
    for(idx in elements) {
    no=elements[idx].id.substr(3);

    tsub=(elements[idx].value*1) * (document.getElementById("harga"+no).value*1);
    document.getElementById("sub"+no).value=tsub;

    tharga+=tsub;
    }
    document.getElementById("total").value=tharga;
    }


    berhubung $total & $sub sebaiknya di hitung ulang,
    maka buat <input> total & sub tidak perlu punya NAME
  • saran lain yg berhubungan dgn keamanan :

    sebenernya yg elo butuhin dari user itu hanya "jumlah barang"

    harga sudah ada di database.
    rujukannya ID barang atau KODE barang.

    jadi sebaiknya, di <form> elo itu yg ada hanya 2 <input> yg isinya dikirim balik ke server saat submit :
    - ID / KODE BARANG, sebaiknya pake input hidden
    - JUMLAH BARANG, ini diisi manual oleh user

    penjumlahan interaktif pake javascript silakan dilakukan.
    itu fungsinya hanya informasi yg bisa dilihat user saat itu juga.

    tapi yg dikirim ke server saat submit tetap ID / KODE BARANG & JUMLAH BARANG saja.

    saat proses setelah submit ...
    pake ID / KODE BARANG, elo query ke database, ambil ulang harganya.
    lalu dikalikan JUMLAH BARANG ... elo baru dapat SUBTOTAL.
    penjumlahan SUBTOTAL baru didapatkan TOTAL.

    cara ini aman.

    dibanding elo mempercayai semua isi dari <form>

    form bisa dimanipulasi.
    misal harga diubah jadi 0, tapi jumlah barang diisi 10000.
    otomatis subtotal = 0
    total juga jadi = 0

    kalo ini form belanja, ya rugi yg jualan.

    beli 10000 barang, harga 0
  • edited January 20
    tq master @labalaba untuk harga tidak bisa di tentuin di database, karena harga tidak fix, bisa berubah berubah, untuk cara master @labalaba saya pelajri dulu, nanti klo ga mudeng minta pencerahan lagi master...

    terus untuk ini master

    belum kalo index nya ndak urut ...

    itu elo ada fungsi bisa hapus isian.
    jadinya ada kemungkinan urutannya loncat :
    harga2
    harga5
    harga6
    harga7
    harga9
    seharusnya nilai pasti berurut, soalnya saya ambil nilai itu dari jumlah data yang ada di databse, atau itu nanti sama dengan nilai di nomor urut, jadi pasti ga ada lompat nilai nya

    saya ada coba pakai ini master
    function total() {
    var elements=document.getElementsByName("harga[]");
    var tharga=0;
    for(idx in elements) {
    tharga+=(elements[idx].value*1);
    }
    document.getElementById("total").value=tharga;
    }
    cuman kok hasilnya NaN yah master
  • kalo bermasalah, langsung post minimal berikut form yg dipergunakan.
    jadi gw tau asal masalah dari mana.
  • sory master @labalaba ini gambar nya

    image

    ini saya baru buat untuk total harga, itu ada muncul NaN

    javascript nya seperti ini
    function penjualanB(id1,id2,id3){
    var tona = document.getElementById(id1).value;
    var hargaa= document.getElementById(id2).value;
    ton = tona.replace(/[^0-9]/g, '');
    harga = hargaa.replace(/[^0-9]/g, '');
    var tharga = (ton*1)*(harga*1)/10000;
    document.getElementById(id3).value = tharga.toLocaleString();

    var elements=document.getElementsByName("harga[]");
    var tharga=0;
    for(idx in elements) {
    tharga+=(elements[idx].value*1);
    }
    document.getElementById("gharga").value=tharga;
    untuk coding update nya seperti ini master @labalaba

    http://codepad.org/Rzm0I4Du

    tq sebelumnya master
  • edited January 21
    ini gw belum bahas koding,
    cuma bahas yg elo jumlah ...

    itu logika ngitungnya ndak salah kah ?

    jumlah batang dan ton nya ...
    apa ya kaya gitu cara ngitungnya ?

    elo punya 4 jenis kayu.
    ok dah kalo dihitung total batangnya ... bisa
    1000 + 250 + 500 + 300 = 2050

    2050 batang kayu tipe campuran.



    tapi ton nya ?

    itu kalo di total ton nya, mestinya :

    ( 1000 x 0.2865 ) + ( 250 x 0.0521 ) + ( 500 x 0.0955 ) + ( 300 x 0.0677 )
    286.5 + 13.025 + 47.75 + 20.31
    367.585 ton

    kalo di rata-rata, tiap batang beratnya : 367.585 / 2050 ~~ 0.17931 ton



    tapi kalo cara elo ngitung gitu (yg di gambar) ...
    total batang = 2050
    total ton = 0.5018 ... ???

    2050 x 0.5018 = 1028.69 ton ???

    ya salah ... lha wong total nya mestinya cuma 367.585 ton



    itu total ton nya ...
    kalo mau elo tampilkan, mestinya (mungkin) jumlah rata-ratanya (0.17931 ton)
    atau tidak perlu elo tampilkan sama sekali.

    kalo total batang, masih bisa.
    ada sekian batang kayu.



    dgn kondisi yg sama ...
    apa harga perlu elo jumlah ?

    kalo tharga yg elo jumlah masih bener.



    coba dipikirkan dulu.
  • edited January 21
    kalo sekedar nanya kenapa error ...

    for(idx in elements) {
    ...
    }

    gw lupa, idx itu ndak cuma angka.
    ada property lain dari elements yg ikut di-loop di dalam for()
    harus ada if() buat memeriksa idx harus angka.

    for(idx in elements) {
    if(!isNaN(idx)) tharga+=(elements[idx].value*1);
    }

    ----------------------------------------------------------

    dan dgn pemikiran yg awal gw tulis ...
    harusnya koding elo cuma :
    function penjualanB(id1,id2,id3){
    var tona = document.getElementById(id1).value;
    var hargaa= document.getElementById(id2).value;
    ton = tona.replace(/[^0-9]/g, '');
    harga = hargaa.replace(/[^0-9]/g, '');
    var tharga = (ton*1)*(harga*1)/10000;
    document.getElementById(id3).value = tharga.toLocaleString();

    var elements=document.getElementsByName("tharga[]");
    var tharga=0;
    for(idx in elements) {
    if(!isNaN(idx)) tharga+=(elements[idx].value.replace(/[^0-9]/g, '')*1);
    }
    document.getElementById("gtharga").value=tharga.toLocaleString();
    }
    yg di jumlah "T.HARGA" nya, bukan "HARGA"

    itu juga mesti menghilangkan dulu format ribuan sebelum bisa dijumlah.



    TOTAL "TON" dan "HARGA" harusnya ndak ada.
  • master @labalaba untuk jumlah ton nya sdh benr, soalnya untuk mengeluarkan ton nya itu ada rumusnya, jadi
    1000 btg = 0.2865
    250 btg = 0.0521
    500 btg = 0.0955
    300 brtg = 0.0677

    itu sdh tidak salah master, jadi kenapa saya tampilkan btg sama ton nya, karena ada kondisi lagi kalau jumlah batang di atas 0.5 ton nanti perhitungan harga nya pakai ton x harga per ton nya, kalau di bawah 0.5 ton nanti perhitungan nya pakai batang x harga per batang

    itu saya cuman contoh aja master untuk jumlah harga nya, nanti total harga yg jumlah. sory jadi membinggung kan....
Sign In or Register to comment.