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

memberikan warning level root tidak bisa didelete

view :http://pastebin.com/H04FdQhD

gimana caranya ya?
saat user delete level root, ada warning klo level root tidak bisa didelete

pke if, cman aku masih bingung
soalnya if nya di dalam ajax

mohon pencerahannya :D
Tagged:
«1

Comments

  • edited June 2015
    karena aku kesulitan utak-atik javascript nya, aku coba dari controller aja
    tapi jika id=1, tidak bisa  tampil pesan alert
    klo id selain 1, bisa dihapus

    controller :

    function multiple_delete()
        {
            // file_put_contents('log.txt', print_r($_POST, true));
            $id = $this->input->post('level_id');

            $hasil = explode(',',$id);
            foreach($hasil as $value)
            {
                if($value==1)
                {
                    echo '<script language="javascript">';
                    echo 'alert("Data tidak bisa dihapus")';
                    echo '</script>';
                }
                else
                {
                    $this->group_model->multi_delete($value); //id selain 1, hapus
                }
            }
        }



    :-?
  • edited June 2015
    wah..bahaya nih.. masa naruh javascript di controller...
  • edited June 2015
    bahaya gimana?

    sebenarnya bisa di view nya
    cman aku masih bingung :D
  • warning ... popup javascript ?

    warning muncul ...
    setelah proses ?
    atau sebelum proses ?

    btw, yg button delete kagak muncul kemarin itu di level root juga ?
  • edited June 2015
    kirain gak di bales :D

    iya master
    intinya user root dia gak bisa hapus root

    sebelum proses
    jadi sebelum di proses di ajax, dibandingkan apakah level itu root atau bukan
    klo root, gak diproses
    klo selain root, diproses

    iya, cman bedanya yg kemaren itu delete yg di action
    klo ini multi delete
    jadi, aku punya 2 delete, satu 1x delete, yg satu multi delete
    yg mulit delete ini, pke ajax
  • multi ? dipilih pake checkbox ?

    napa checkbox nya kagak usah dimunculin saja ?
  • edited June 2015
    iya

    oiya, knapa gak kepikiran ya :D

    ini caranya sama dengan tombol delete kemaren ya?
    add_column di ganti select
  • edited June 2015
    yup

    checkbox nya cuma buat multi delete doang to ?
    atau ada fungsi lain yg juga pake checkbox yg sama ?
  • edited June 2015
    ada fungsi lain master
    copy, publish, un-publish
    semua pke checkbox yg sama

    klo aku lihat, kayaknya gak bisa klo checkbox nya dihilangin
    ntar, fungsi yg lain gak bisa digunakan

    jalan satu-satu nya dikasih pesan alert

    di view nya, aku coba  :


    ...

    if (message==true) {
                        e.preventDefault();
                        var id_array = $('.tikmark1:checked').map(function()
                        {
                            return $(this).val();
                        }).get();
           
                        if(id_array==1){
                            alert("Tidak bisa didelete");
                            return false;
                        }


                        $.ajax({
                        url:'<?php echo site_url() ?>group/multiple_delete',
                        data:"level_id="+id_array,
                        type:"POST",
    ...


    tapi, level_id = 1 masih bisa dihapus




    :-?
  • form elo pake datatables yg di load via ajax

    gw binun kalo bilang ke elo "di view source" form nya
    pasti kagak bakal nyambung
    soalnya kalo di view source beneran, kagak bakal keliatan hasil datatables nya

    gini aja ...

    kalo pake firefox
    elo buka yg ada form nya
    elo pilih semua : Ctrl + A
    klik kanan, pilih "View Selection Source"

    elo cari form datatables elo yg ada chekbox nya
    posting kemari
  • edited June 2015
    masalah dgn ini doang

    <tr class="odd" role="row">
      <td>
        <input id="tikmark" name="tikmark[]" class="tikmark1" value="1" type="checkbox">
        <input id="level_id" name="id" value="1" type="hidden">
      </td>
      <td class="text-center sorting_1">1</td>
      <td>Root</td>
      <td>Group untuk Root</td>
      <td>YES</td>
      <td class=" text-center">
        <a href="http://localhost/TMS/group/edit/1" class="btn btn-primary btn-xs"><i class="fa fa-edit"></i>&nbsp;Edit</a>
        &nbsp;
        <a href="http://localhost/TMS/user_group/edit/1" class="btn btn-primary btn-xs"><i class="fa fa-edit"></i>&nbsp;Assign Menu</a>
      </td>
    </tr>

    ???

    kagak boleh di check buat di delete ?

    btw,
    button delete multi nya yg mana ?
  • edited June 2015
    iya master

    <button class="btn btn-danger btn-sm" type="Button"
    id="delete_multi"><i class='fa
    fa-trash-o'></i>&nbsp;Delete</button><br
    /><br />

    atau search delete_multi di :
    http://pastebin.com/H04FdQhD
  • :-?


    ada solusi master? :D
  • solved :D

    ...

    if(id_array.indexOf("1") != -1)
    {  
        alert("Tidak bisa di delete");
    }

    else{
    $.ajax({

    ...

    }
  • tetep bakal bermasalah ...

    itu elo baru memeriksa saat sebelum di submit
    tapi di php nya, gw yakin kagak elo cek ulang

    kalo yg pake paham ada celah disitu
    root tetep bakal bisa dihapus
  • edited June 2015
    memang bisa? :-?


    inikan di load lewat ajax
  • edited June 2015
    emang file tujuan request ajax nya kagak bisa di akses langsung ?
  • aku udah coba dan gak bisa :P
  • yakin kagak bisa ? atau kagak tau caranya ?
  • edited June 2015
    mas'e ... multi delete elo itu via POST
    ya kagak mungkin elo paksa masukin id via GET

    berarti bukan kagak bisa
    tapi elo kagak tau cara nya to ?
  • iya, aku gak tau caranya :D

    trus, caranya gimana? :D
  • edited June 2015
    cara gampang pake fake form

    bikin aja form html biasa
    method post
    action ke target request nya ajax
    bikin field dgn name dan value yg dibutuhin
    tinggal submit
  • edited June 2015
        <form action="http://localhost/.../index.php/group/multiple_delete/" method="POST">
            <table>
                <tr>
                    <td>id</td>
                    <td>:</td>
                    <td><input type="text" name="id"></td>
                </tr>
                <tr>
                    <td></td>
                    <td></td>
                    <td><input type="submit" name="simpan" value="Simpan"></td>
                </tr>
            </table>
        </form>




    begitu? :-?
  • edited June 2015
    id elo yg model multi pan bentuknya array
  • <form action="http://localhost/.../index.php/group/multiple_delete/" method="POST">

    <?php
        $id=array(20,21,22);
        foreach ($id as $array)
        {
    ?>
            <input type="hidden" name="id[]" value="<?php echo $array; ?>"/>
    <?php
        }
    ?>
        
        <input type="submit" name="simpan" value="Simpan">

    </form>



    gak bisa delete :-?
  • function multiple_delete()
    {
    // file_put_contents('log.txt', print_r($_POST, true));
    $id = $this->input->post('level_id');
     
    $hasil = explode(',',$id);
    foreach($hasil as $value)
    {
    if($value==1)
    {
    $this->redirect('view');
    }
    else
    {
    $this->group_model->multi_delete($value); //id selain 1, hapus
    }
    }
    }



    klo perlu pake session flash buat nampilkan pesan error.

    aku gk tau maksud kamu "level_id = 1" , 1 itu valuenya apa akses nya.

    kalo value, pake jquery buat nangkap value nya kalo 1 ditolak.
    $(function(){
    $('input[type="radio"]').click(function(){
    if ($(this).val() == 1 )
    {
    alert("gk bisa dihapus");
    }
    });
    });
  • edited June 2015
    udah jadi bro :D

    cman masih ada lubang
    seperti komen yg di atas
  • kagak perlu seribet itu dah ...

    <form action="http://localhost/.../index.php/group/multiple_delete/" method="POST">
    id : <input type="text" name="tikmark[]"><br>
    <input type="submit" value="Simpan">
    </form>
  • edited June 2015
    gagal master  :D


    misal aku mau hapus id=20

    aku input id=20, lalu submit

    aku cek di form, id=20 masih ada
  • elo login dulu
    lalu buka tab baru, jalankan fake form nya
  • edited June 2015
    udah master

    saat aku submit, menuju ke : http://localhost/.../index.php/group/multiple_delete/
    isi browser nya kosong

    aku lihat di form, id=20 masih ada
  • gagal dihapus atau data valuenya gk diterima sama si 'multiple_delete' ?
  • view selection source elo mana ?
  • gagal dihapus atau data valuenya gk diterima sama si 'multiple_delete' ?
    valuenya gk diterima

    view selection source elo mana ?
    http://pastebin.com/hHTUeDCW
  • semua mas ...
    bukan potongan

    karena yg bisa dilihat client itu juga semua
  • <form action="http://localhost/.../index.php/group/multiple_delete/" method="POST">
    id : <input type="text" name="level_id"><br>
    <input type="submit" value="Simpan">
    </form>
  • edited June 2015
    function multiple_delete()
    {
            if (!$this->input->is_ajax_request())
            {
                 redirect('group/index');
            }
            else
            { 

            ...

            }
    }

    dengan begitu, root tidak bisa dihapus dan gak ada celah lagi :D
  • yg bilang siapa ?

    gw pan nulis : "cara gampang pake fake form"

    gw pan kagak bilang "kagak ada cara lain" atau "itu cuma cara satu-satu nya"

    baca php manual, pelajari curl
    cuma masalah is_ajax_request() ?
    itu mah cuma memeriksa header HTTP_X_REQUESTED_WITH
    dihantam pake ini :
    curl_setopt($ch, CURLOPT_HTTPHEADER, array("X-Requested-With: XMLHttpRequest"));
    beres
  • untuk sementara ini dulu master

    masalah keamaanan, nanti ditingkatkan pelan2 :D

    makasih masukannya master :-bd
  • edited June 2015
    hoalah ...
    lha wong tinggal nambah filter yg gampang kok nunggu nanti

    cek saja $_POST['level_id'], kalo ketemu id = 1
    boleh elo reject langsung request nya
    atau yg id = 1 yg elo abaikan permintaan DELETE nya



    tapi gw curiga dgn alur elo yg lain ...
    kemungkinan sama bolong nya
  • edited June 2015
    function multiple_delete()
    {
            if($_POST['level_id']==1)
            {
                 redirect('group/index');
            }
            else
            {      
              
            ...

            }
    }


    =D>


    alur lain yg bolong dibenerin pelan2 :D
  • salah ...

    'level_id' elo itu bentuknya kaya begini : 1,2,3,4,5
    tergantung id yg mau dihapus berapa saja

    terserah elo
    kalo mengandung "1" bisa elo reject semua
    atau 1 nya elo hilangkan, jadi yg di delete cuma 2,3,4,5
  • <form action="http://localhost/.../index.php/group/multiple_delete/" method="POST">
    id : <input type="text" name="level_id"><br>
    <input type="submit" value="Simpan">
    </form>

    itu cman bisa hapus 1
  • yg bilang ?

    elo pan bisa isi : 1,2,3,4,5,6,7
  • if (in_array('1', $_POST['level_id']))
    {
           redirect('group/index');
    }
    else
    {

    ...

    }

    masih error
  • $_POST['level_id'] itu masih string ... masa kagak sadar to ?
    isinya : "1,2,3,4,5"
    bukan array : [1,2,3,4,5]
    ya pasti kagak bakal bisa elo pake in_array()

    ubah dulu jadi array
  • edited June 2015
    function multiple_delete()
    {
            $str = $_POST['level_id'];
            $arr = explode(",", $str);

            if (in_array('1', $arr)){
                redirect('group/index');
            }   
            else{
                $id = $this->input->post('level_id');

                $hasil = explode(',',$id);
                foreach($hasil as $value)
                {
                    $this->group_model->multi_delete($value);
                }
            }
    }


    begitu? :-?
Sign In or Register to comment.