Tolong pilih kategori sesuai, jenis posting (pertanyaan atau bukan) dan sertakan tag/topik yang sesuai misal komputer, php, mysql, dll.
Promosi atau posting tidak pada tempatnya akan kami hapus.
Mencantumkan kode program di posting Anda, tolong ikuti aturan yang sesuai, baca http://diskusiweb.com/discussion/39204/aturan-cara-menyisipkan-kode-program-di-diskusiweb

Baca cara posting gambar/image di post Anda: http://www.diskusiweb.com/discussion/47345/cara-menyisipkan-menyertakan-image-pada-posting/p1

penjumlahan javascrip tidak bisa otomatis kalau ada hasil yang nilai 0

para master dan suhu sekalian, saya ada kasus mau jumlahkan nilai dengan javascript agar nilai bisa langsung keluar, kini yang saya buat sudah bisa jalan, cmn ada error waktu ada nilai yg hasil nya 0, penjumlahan tidak berjalan seperti gambar ini
image
sedangkan kalau nilai pada pajak penghasilan terutang ada nilai semua hasilnya seperti ini
image

apakah ada coding saya yang salah master, tolong dikoreksi kalau ada yang salah...

http://codepad.org/4OOSqeN3

Tolong master koreksinya....tq sebelumnya... :)

Tanggapan

  • edited December 2
    yg bermasalah di sekitar row B-G ...
    tapi gw search di code nya tulisan "Jumlah Penghasilan", "Pajak Penghasilan", "Penghasilan" ...
    ndak ketemu semua ...

    di baris berapa yah ?
    'kali gw kelewatan atau editor gw lagi mabok ... :D
  • Sory master @labalaba script nya ada ke potong ga tercopy dengan benar, nanti saya copy ulang lagi....
  • master @labalaba script nyaa kepanjangan, ga bisa tercopy semua, nih mau copy kemana biar bisa lengkapp yah...
  • master @labalaba ini saya copy menjadi 2 yah...
    1. http://codepad.org/YEOzlv70
    2. http://codepad.org/Kd0ZQmtY

    tolong koreksinya...

    tq yah....
  • edited December 4
    :D :D :D

    koding elo ribet amat. muter-muter.
    banyak yg bisa disederhanakan.

    while ($m = mysql_fetch_assoc($sql_kul)) {
    $mcc = mysql_fetch_assoc(mysql_query("SELECT * FROM espt_jpajak WHERE id = '$m[jpajak]'"));

    while ($m = mysql_fetch_assoc($sql_kul)) {
    $Ckh = mysql_fetch_assoc(mysql_query("SELECT * FROM espt_kode_harta WHERE kode='$m[a41]'"));

    while ($m = mysql_fetch_assoc($sql_kul)) {
    $Ckh = mysql_fetch_assoc(mysql_query("SELECT * FROM espt_kode_harta WHERE kode='$m[b41]'"));
    query di dalam loop ?
    yah, kalo gw sih ndak bakal kejadian, itu malah lebih parah dari subquery, bikin lambat.


    ini dan sejenisnya elo ulang2 banyak banget ...
    var number_string = hitung.toString(),
    sisa = number_string.length % 3,
    rupiah = number_string.substr(0, sisa),
    ribuan = number_string.substr(sisa).match(/\d{3}/g);

    if (ribuan) {
    separator = sisa ? ',' : '';
    rupiah += separator + ribuan.join(',');
    }
    napa kagak dijadikan fungsi ? tinggal panggil ...


    gw nemu banyak banget model kaya begini :
    <input type='text' ... onkeypress='return hanyaAngka(event)' ... readonly>
    readonly itu ndak bakal bisa diketik mas ...
    lalu onkeypress di situ buat apa ?

    ini juga :
    <input type='hidden' ... onkeypress='return hanyaAngka(event)' ... readonly>
    <input type='hidden' ... onkeypress='return hanyaAngka(event)' ... onkeyup='tphmtbg()' readonly>
    sudah hidden, ndak bakal muncul, masih readonly, masih ada onkeypress dan onkeyup nya pula ...


    ini, dan sejenisnya, bisa jalan ...
    if(hitung-200000000>=250000000){
    var phmt4aa3=250000000;
    }else{
    var phmt4aa3=hitung-200000000;
    }
    var number_string = phmt4aa3.toString(),
    phmt4aa3 masih dapat nilainya.
    kalo ndak dari if(), ya dari else nya.
    tapi pasti ada nilainya.

    tapi ini :
    if(hitung>500000000){
    var phmt4aa4=hitung-500000000;
    }
    var number_string = phmt4aa4.toString(),
    phmt4aa4 tidak akan ada nilainya kalo tidak memenuhi syarat if() nya.

    pasti error di perintah ini
    var number_string = phmt4aa4.toString()
    dan script berhenti, tidak berlanjut ke perintah berikut.

    error nya ini :
    Uncaught TypeError: Cannot read property 'toString' of undefined

    elo kan bisa bikin begini :
    else {
    var phmt4aa4 = 0;
    }
  • Master @labalaba yg onkeypress itu untuk pengetikan nya cmn bisa angka saja, jd langsung format ribuan, sdh ada fungsinya, sedangkan yg readonly itu tdk boleh di ketik punya, cmn untuk tampilan aja.

    Kalau ini
    var number_string = hitung.toString(),
    sisa = number_string.length % 3,
    rupiah = number_string.substr(0, sisa),
    ribuan = number_string.substr(sisa).match(/\d{3}/g);

    if (ribuan) {
    separator = sisa ? ',' : '';
    rupiah += separator + ribuan.join(',');
    }

    Mau buat fungsi jadi tinggal manggil gimana yah, soalnya ga gitu paham soal javascript

    Kalau yg ini
    while ($m = mysql_fetch_assoc($sql_kul)) {
    $mcc = mysql_fetch_assoc(mysql_query("SELECT * FROM espt_jpajak WHERE id = '$m[jpajak]'"));

    while ($m = mysql_fetch_assoc($sql_kul)) {
    $Ckh = mysql_fetch_assoc(mysql_query("SELECT * FROM espt_kode_harta WHERE kode='$m[a41]'"));

    while ($m = mysql_fetch_assoc($sql_kul)) {
    $Ckh = mysql_fetch_assoc(mysql_query("SELECT * FROM espt_kode_harta WHERE kode='$m[b41]'"));

    Kalau mau di sederhanakan gimana yah master @labalaba

    Nanti saya coba tambah else lagi mudah2an bisa jalan
  • edited December 4
    onkeypress itu untuk pengetikan nya cmn bisa angka saja, jd langsung format ribuan, sdh ada fungsinya, sedangkan yg readonly itu tdk boleh di ketik punya, cmn untuk tampilan aja.
    elo coba ini aja ...

    bikin 1 file html, isinya cuma ini :
    <input type='text' readonly>
    coba elo ketik : abcdefghijklmnopqrstuvwxyz
    bisa ?

    lalu bikin 1 file html baru lagi, isinya cuma ini :
    <input type='hidden'>
    coba elo ketik : abcdefghijklmnopqrstuvwxyz
    bisa ?

    lalu event onkeypress itu bakal jalan jika kondisi bagaimana ?
    event onkeyup itu bakal jalan jika kondisi bagaimana ?


    LOGIKA :
    suatu wadah elo tutup permanen, emang ndak bisa diisi, tutupnya ndak bisa dicabut,
    apa masih ada gunanya ditempel tulisan : dilarang diisi dgn air ?

    suatu wadah elo umpetin, elo pendam dalam tanah, ndak keliatan lagi,
    masih elo tutup permanen, emang ndak bisa diisi, tutupnya ndak bisa dicabut,
    apa masih ada gunanya ditempel tulisan : dilarang diisi dgn air ?
  • Yg master @labalaba maksudnya yg readonly sama hidden yah, hahah... Iy itu mubazir, nanti saya hapus master... Sory ga mudeng waktu bacanya...
  • Onkeyup itu bukan nya waktu kita masukan angka dia langsung menjumlahkan otomatis pakai java? Soalnya klo saya ga masukan onkeyup javanya ga jalan, apakah ada salah master, tolong koreksinya...
  • edited December 5
    [1]
    Onkeyup itu bukan nya waktu kita masukan angka dia langsung menjumlahkan otomatis pakai java? Soalnya klo saya ga masukan onkeyup javanya ga jalan
    ... itu kalo field nya normal, emang bisa diisi ...
    lha kalo elo pasang di field yg readonly dan hidden itu buat apa ?
    readonly, event onkeypress & onkeyup masih jalan,
    tapi orang kan ndak bakal pernah isi di situ.

    jadi
    "onkeypress" = "saat tombol (keyboard) ditekan"
    "onkeyup" = "saat tombol (keyboard) di angkat / lepas"
    itu ya cocok kalo field emang bisa diisi dgn pengetikan keyboard.
    ... gw kan emang ndak nulis onkeyup di field elo yg type text tanpa readonly nya salah ...
    yg gw tunjukin kan HANYA yg pake readonly dan yg hidden.

    bukan error, tetep jalan ... tapi buat apa ?
    cuma buang2 langkah, boros nulis, boros resource memori buat define event nya, dll ...

    PERINTAH : cetak huruf 'A'
    <?php
    for($i=1;$i<=1000000;$i++);
    echo 'A';
    ?>

    salah ? enggak
    jalan ? iya
    hasil benar ? iya
    efektif ? tidak
    efisien ? tidak
    asal jalan ? iya :D

    ntar bingung lagi kalo aplikasi nya jadi lambat ... :D
  • edited December 5
    [2]
    gw pastikan dulu tujuan elo bikin deretan perintah ini apa ...
    var number_string = hitung.toString(),
    sisa = number_string.length % 3,
    rupiah = number_string.substr(0, sisa),
    ribuan = number_string.substr(sisa).match(/\d{3}/g);

    if (ribuan) {
    separator = sisa ? ',' : '';
    rupiah += separator + ribuan.join(',');
    }
    yg gw tangkep sih elo cuma mau bikin tulisan 10000000 jadi 10,000,000
    betul ?

    Mau buat fungsi jadi tinggal manggil gimana yah, soalnya ga gitu paham soal javascript
    ... lha elo kan sudah bikin banyak fungsi di koding javascript elo ...


    elo bikin begini kan beres :
    function format_angka(angka) {
    var number_string = angka.toString(),
    sisa = number_string.length % 3,
    rupiah = number_string.substr(0, sisa),
    ribuan = number_string.substr(sisa).match(/\d{3}/g);

    if (ribuan) {
    separator = sisa ? ',' : '';
    rupiah += separator + ribuan.join(',');
    }
    return rupiah;
    }
    saat butuh tinggal elo panggil, misal :
    document.getElementById("jpn").value = format_angka(hitung);
    ...
    document.getElementById("j1d").value = format_angka(hitung);
    ...
    document.getElementById("JL3A").value = format_angka(hitung);
    ...
    document.getElementById("tphmt1aa").value = format_angka(tphmt1aa);
    ...
    ... dll ...
    kagak perlu berkali-kali nulis barisan perintah yg sama.


    ... tapi ...
    dibanding bikin fungsi sepanjang itu ... :D
    document.getElementById("jpn").value = hitung.toLocaleString();
    ...
    document.getElementById("j1d").value = hitung.toLocaleString();
    ...
    document.getElementById("JL3A").value = hitung.toLocaleString();
    ...
    document.getElementById("tphmt1aa").value = tphmt1aa.toLocaleString();
    ...
    ... dll ...
    ... hasilnya sama ... :D
    yah, minimal di tempat gw, soalnya gw selalu pake setting language bahasa inggris di perangkat gw yg mana pun :D
    entah kalo yg pake setting bahasa indo jadinya kaya apa ...
    'kali 10.000.000
  • edited December 6
    [3]
    gw tunjukin 1 aja ...
    <tbody>";
    $query = "SELECT * FROM espt_1770_lamp2a WHERE idwp='$_GET[idwp]'";
    $query .= " ORDER BY waktu";
    $sql_kul = mysql_query($query);
    $fd_kul = mysql_num_rows($sql_kul);
    if($fd_kul > 0){
    $no = $posisi + 1;
    while ($m = mysql_fetch_assoc($sql_kul)) {
    $mcc = mysql_fetch_assoc(mysql_query("SELECT * FROM espt_jpajak WHERE id = '$m[jpajak]'"));
    echo"<tr>
    <td>$m[nama_pemotong]</td>
    <td>".npwp($m['npwp_pemotong'])."</td>
    <td>$m[bukti_potong]</td>
    <td>".baliktglindo($m[tgl_potong])."</td>
    <td>$mcc[ket]</td>
    <td><div align='right'>".minuss($m['pph_dipotong'])."</div></td>
    <td>";
    if(isset($_SESSION['e1770lespt']) AND $_SESSION['e1770lespt'] <> 'TRUE'){
    echo "
    <a href='$aksi3?mod=kpp&width=300&height=200&TB_iframe=true' class='thickbox'>
    <i class='fa fa-pencil-square w3-large w3-text-grey'></i></a>";
    }else{
    echo "
    <a href='med.php?mod=espt-1770-lampiran&act=lamp2&aksi=edit&idwp=$_GET[idwp]&id=$m[id]'>
    <i class='fa fa-pencil-square w3-large w3-text-blue'></i></a>";
    }
    if(isset($_SESSION['hwpespt']) AND $_SESSION['hwpespt'] <> 'TRUE'){
    echo "
    <a href='$aksi3?mod=kpp&width=300&height=200&TB_iframe=true' class='thickbox'>
    <i class='fa fa-trash w3-large w3-text-grey'></i></a>";
    }else{
    echo "
    <a href='$aksi?mod=espt-1770-lampiran&act=hapus-lamp2A&id=$m[id]' onclick=\"return confirm('Yakin hapus data');\">
    <i class='fa fa-trash w3-large w3-text-red'></i></a>";
    }
    echo "
    </td>
    </tr>";
    $no++;
    }
    }else{
    echo"<tr>
    <td colspan='7'><div class='w3-center'><i>Data Pemotong/Pemungut Not Found.</i></div></td>
    </tr>";
    }
    echo"</tbody>
    elo query di dalam loop hanya mau ambil $mcc[ket] doang ? ... dan elo pake SELECT * ? :D

    hambok begini ...
    <tbody>";
    $query = "SELECT a.*,b.ket FROM espt_1770_lamp2a a LEFT JOIN espt_jpajak b ON b.id = a.jpajak WHERE a.idwp='$_GET[idwp]'";
    $query .= " ORDER BY a.waktu";
    $sql_kul = mysql_query($query);
    $fd_kul = mysql_num_rows($sql_kul);
    if($fd_kul > 0){
    $no = $posisi + 1;
    while ($m = mysql_fetch_assoc($sql_kul)) {
    echo"<tr>
    <td>$m[nama_pemotong]</td>
    <td>".npwp($m['npwp_pemotong'])."</td>
    <td>$m[bukti_potong]</td>
    <td>".baliktglindo($m[tgl_potong])."</td>
    <td>$m[ket]</td>
    <td><div align='right'>".minuss($m['pph_dipotong'])."</div></td>
    <td>";
    if(isset($_SESSION['e1770lespt']) AND $_SESSION['e1770lespt'] <> 'TRUE'){
    echo "
    <a href='$aksi3?mod=kpp&width=300&height=200&TB_iframe=true' class='thickbox'>
    <i class='fa fa-pencil-square w3-large w3-text-grey'></i></a>";
    }else{
    echo "
    <a href='med.php?mod=espt-1770-lampiran&act=lamp2&aksi=edit&idwp=$_GET[idwp]&id=$m[id]'>
    <i class='fa fa-pencil-square w3-large w3-text-blue'></i></a>";
    }
    if(isset($_SESSION['hwpespt']) AND $_SESSION['hwpespt'] <> 'TRUE'){
    echo "
    <a href='$aksi3?mod=kpp&width=300&height=200&TB_iframe=true' class='thickbox'>
    <i class='fa fa-trash w3-large w3-text-grey'></i></a>";
    }else{
    echo "
    <a href='$aksi?mod=espt-1770-lampiran&act=hapus-lamp2A&id=$m[id]' onclick=\"return confirm('Yakin hapus data');\">
    <i class='fa fa-trash w3-large w3-text-red'></i></a>";
    }
    echo "
    </td>
    </tr>";
    $no++;
    }
    }else{
    echo"<tr>
    <td colspan='7'><div class='w3-center'><i>Data Pemotong/Pemungut Not Found.</i></div></td>
    </tr>";
    }
    echo"</tbody>
    ... sekali request data, ket nya juga ngikut ...
  • ... satu lagi gw lupa ...

    masalah format angka yg elo pake ...
    selalu bilangan bulat, tanpa desimal (angka sen)
    padahal pajak itu ndak pernah lepas dari angka desimal.

    emang benar yg dibayarkan adalah bulat, karena rupiah ndak kenal sen.
    tapi di perhitungan berurut, yg angka sesudahnya itu dasarnya adalah perhitungan sebelumnya, sen nya harus tetep ada.
    kalo semua dibulatkan ke atas, keenakan dong kantor pajaknya, kebanyakan hasil pembulatan keatasnya :D
  • Wah.... Mantap kali master @labalaba nih w pelajarin dl semua yg master bilang....thanks kali master ilmu nya....
  • master @labalaba sudah saya hapus fungsi yang tidak di pakai, sama penampilan ribuan punya master @labalaba lebih ok, jadi saya ikut yg itu, untuk model semua sudah ok, cmn ini ada 1 masalah lagi master,
    pada bagian enghasilan Tidak Kena Pajak itu kan kita ada isi nilai di K/I .... itu nilai nya kalau saya isi seharusnya ambil nilai di database, bagaimana agar pengambilan data di database mysql di dalam javascritp, kalau sekarang saya hanya langsung masukan ke perhitungan langsung, sedangkan nilai itu kan bisa berubah2, jadi mau saya masukan ke database

    tolong masukan kan lagi master @labalaba .... :)
  • maksudnya gimana ?

    data yg di database isinya apa ?
Sign In or Register to comment.