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
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
tolong pencerahan nya master sekalian.....
javascritp ini aku jalankan di php punya.
terima kasih...
kalau mau penjumlahan atau pengurangan ribuan di javascript bagaimana yah???
aku buat tidak jalan2
coding java nya ini
tolong pencerahan nya master sekalian.....
javascritp ini aku jalankan di php punya.
terima kasih...
Comments
Dulu gw pernah ngalamin kaya gitu (Ngitung gaji) masalahnya ada di value yang bukan Number.
contoh var z = parseInt($(".x").val());
tau maksudnya
tapi buat apa ?
lha wong ndak pake interval juga jalan
atau set valuenya di javascript dengan parseInt()
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
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(); }
untuk perintah phpnya
#
DESKRIPSI
BTG";
if($n_ton>=0.5){
echo "
HARGA
T.HARGA";
}elseif($n_ton<0.5){
echo "
<th width='15%'>INCHI
HARGA";
}
echo "
";
$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"
$no
$b[nama]UK. $b[p] x $b[l] x $b[t]
".number_format($b['qty'])."
";
if($n_ton>=0.5){
echo "
";
}elseif($n_ton<0.5){
echo "
<td width='10%'>
";
}
echo "
";
$no++;
}
}else{
echo"
Keranjang Kosong
";
}
echo"
TOTAL
".number_format($t_qty)."";
if($n_ton>=0.5){
echo "
HARGA
T.HARGA";
}elseif($n_ton<0.5){
echo "
<td>".number_format($harga)."
".number_format($tharga)."";
}
echo "
POTONGAN HARGA (Rp.)
TOTAL BAYAR
0
itu salah dimana yah master, kalau mau pakar array saya masi ga gt paham masalah array master...^^v maklum belajar otodidak
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 : 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 pake .getElementsByName bedakan ID nya
Tq
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(); }
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...
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.
sekarang saya sudah dapat penjumlahan sesuai dengan jumlah baris yang saya mau, coding nya ini master
http://codepad.org/SRVQcGVS
Javascritp nya
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(); }
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
untuk total di T.HARGA masi salah master nilainya
tolong dikoreksinya master
tq...^^
ok, ndak masalah.
cuma jadi aneh karena NAME nya juga elo bedakan
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.
"; $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.
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
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 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.
<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 : hanya <input> dgn NAME harga[] saja yg diambil dan diproses.
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 :
berhubung $total & $sub sebaiknya di hitung ulang,
maka buat <input> total & sub tidak perlu punya NAME
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
terus untuk ini master 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 cuman kok hasilnya NaN yah master
jadi gw tau asal masalah dari mana.
ini saya baru buat untuk total harga, itu ada muncul NaN
javascript nya seperti ini untuk coding update nya seperti ini master @labalaba
http://codepad.org/Rzm0I4Du
tq sebelumnya master
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.
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 : 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.
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....