Welcome!

By registering with us, you'll be able to discuss, share and private message with other members of our community.

SignUp Now!
  • Guest, before posting your code please take these rules into consideration:
    • It is required to use our BBCode feature to display your code. While within the editor click < / > or >_ and place your code within the BB Code prompt. This helps others with finding a solution by making it easier to read and easier to copy.
    • You can also use markdown to share your code. When using markdown your code will be automatically converted to BBCode. For help with markdown check out the markdown guide.
    • Don't share a wall of code. All we want is the problem area, the code related to your issue.


    To learn more about how to use our BBCode feature, please click here.

    Thank you, Code Forum.

PHP Failed to showing nested dropdown list

vesaldiy

New Coder
Hello friends, I've something to ask about coding codeigniter. I want to create a nested dropdown, but when on testing run it says "The results could not be loaded". So maybe is there something wrong with my typing, please help me.

Here I show the code:

PHP:
<?php defined('BASEPATH') OR exit('No direct script access allowed');

class Ticket extends CI_Controller {

    function __construct() {
        
        parent::__construct();
        check_not_login();
        $this->load->model(['ticket_centralregion']);
    }
    
    // READ
    public function index() {
        
        $data['row'] = $this->ticket_centralregion->get();
        $this->template->load('template', 'ticket/ticket_list', $data);
    }
    
    // CREATE
    public function add() {
        
        $ticket = new stdClass();
        $ticket->ticket_id = null;
        $ticket->vendor = null;
        $ticket->province = null;
        $ticket->area = null;

        $data = array(
            'page' => 'add',
            'row' => $ticket,
        );
        $this->template->load('template', 'ticket/add_ticket', $data);
    }
    
    // UPDATE
    public function edit($id) {
        
        $query = $this->ticket_centralregion->get($id);
        if($query->num_rows() > 0) {
            $ticket = $query->row();

            $data = array(
                'page' => 'edit',
                'row' => $ticket,
                );
            $this->template->load('template', 'ticket/add_ticket', $data);
        } else {
            echo "<script>alert('Data tidak ditemukan');";
            echo "window.location='".site_url('user')."';</script>";
        }
    }
    
    // PROCESS
    public function process() {
        
        $post = $this->input->post(null, TRUE);
        if(isset($_POST['add'])) {
            $this->ticket_centralregion->add($post);
        }
        if(isset($_POST['edit'])) {
            $this->ticket_centralregion->edit($post);
        }
        
        if($this->db->affected_rows() > 0) {
            $this->session->set_flashdata('success', 'Data saved');
        }
        echo "<script>window.location='".site_url('ticket')."'</script>";   
    }
    
    // GET DATA DROPDOWN
    public function getdatavendor()
    {
        $searchTerm = $this->input->post('searchTerm');
        $response   = $this->ticket_centralregion->getvendor($searchTerm);
        echo json_encode($response);
    }
    public function getdataprovince($id_vendor)
    {
        $searchTerm = $this->input->post('searchTerm');
        $response   = $this->ticket_centralregion->getprovince($id_vendor, $searchTerm);
        echo json_encode($response);
    }
    public function getdataarea($id_province)
    {
        $searchTerm = $this->input->post('searchTerm');
        $response   = $this->ticket_centralregion->getarea($id_province, $searchTerm);
        echo json_encode($response);
    }

    // DELETE
    public function del($id) {
        
        $this->ticket_centralregion->del($id);
        
        if($this->db->affected_rows() > 0) {
            echo "<script>alert('Data removed');</script>";
        }
        echo "<script>window.location='".site_url('ticket')."';</script>";
    }
}
controllers

PHP:
<?php defined('BASEPATH') OR exit('No direct script access allowed');

class Ticket_centralregion extends CI_Model {
    
    // GET ALL DATA
    public function get($id = null) {
    
        $this->db->from('trouble_ticket');
        
        if($id != null) {

            $this->db->where('ticket_id', $id);
        }
        $query = $this->db->get();
        return $query;
    }

    // CREATE
    public function add($post) {
        
        $params = [
            'vendor' => $post['vendor'],
            'province' => $post['province'],
            'area' => $post['area'],
        ];
        
        $this->db->insert('trouble_ticket', $params);
    }
    
    // UPDATE
    public function edit($post) {
        
        $params = [
            'vendor' => $post['vendor'],
            'province' => $post['province'],
            'area' => $post['area'],
        ];
        
        $this->db->where('ticket_id', $post['id']);
        $this->db->update('trouble_ticket', $params);
    }
    
    // GET DATA DROPDOWN
    function getvendor($searchTerm = "")
    {       
        $this->db->select('id_vendor, name_vendor');
        $this->db->where("name_vendor like '%" . $searchTerm . "%' ");
        $this->db->order_by('id_vendor', 'asc');
        $fetched_records = $this->db->get('cb_vendor');
        $datavendor = $fetched_records->result_array();

        $data = array();
        foreach ($datavendor as $vendor) {
            $data[] = array("id" => $vendor['id_vendor'], "text" => $vendor['name_vendor']);
        }
        return $data;
    }
    function getprovince($id_vendor, $searchTerm = "")
    {       
        $this->db->select('id_province, name_province');
        $this->db->where('id_vendor', $id_vendor);
        $this->db->where("name_province like '%" . $searchTerm . "%' ");   
        $this->db->order_by('id_province', 'asc');
        $fetched_records = $this->db->get('cb_province');
        $dataprovince = $fetched_records->result_array();

        $data = array();
        foreach ($dataprovince as $province) {
            $data[] = array("id" => $province['id_province'], "text" => $province['name_province']);
        }
        return $data;
    }
    function getarea($id_province, $searchTerm = "")
    {       
        $this->db->select('id_area, name_area');
        $this->db->where('id_province', $id_province);
        $this->db->where("name_area like '%" . $searchTerm . "%' ");   
        $this->db->order_by('id_area', 'asc');
        $fetched_records = $this->db->get('cb_area');
        $dataarea = $fetched_records->result_array();

        $data = array();
        foreach ($dataarea as $area) {
            $data[] = array("id" => $area['id_area'], "text" => $area['name_area']);
        }
        return $data;
    }   

    // DELETE
    public function del($id) {

    $this->db->where('ticket_id', $id);
    $this->db->delete('trouble_ticket');
    }

}
models

PHP:
<!-- Content -->
<section class="content-area p-y-1">
    <div class="container-fluid">
        <h4><?= ucfirst($page) ?> Ticket</h4>
        <div class="pull-right ">
            <a href="<?= site_url('ticket') ?>">
                <button type="button" class="btn btn-warning pull-left m-r-0-5 label-left waves-effect waves-light">
                    <span class="btn-label"><i class="ti-arrow-left"></i></span>
                    Back
                </button>
            </a>
        </div>
        <ol class="breadcrumb no-bg m-b-1">
            <li class="breadcrumb-item"><a href="<?= site_url() ?>">Dashboard</a></li>
            <li class="breadcrumb-item active">New Ticket</li>
        </ol>
    </div>

    <!-- Main Content -->
    <div class="container-fluid">
        <div class="card card-block">
            <div class="row">
                <div class="col-md-12">
                    <div class="pull-right ">
                        <a href="<?= site_url('ticket') ?>">Cancel</a>
                    </div>
                    <h5>Input the new ticket below</h5>
                    <br>
                    <div class="box-body">
                        <form action="<?= site_url('ticket/process') ?>" method="post">
                            <div class="row">
                                <div class="col-md-6">
                                    <div class="form-group">
                                        <label><strong>Vendor*</strong></label>
                                        <select id="vendor" data-plugin="select2" class="form-control select2" name="vendor">
                                            <option value="" selected>- Select -</option>
                                        </select>
                                    </div>
                                    <div class="form-group">
                                        <label><strong>Province*</strong></label>
                                        <select id="province" data-plugin="select2" class="form-control select2" name="province">
                                            <option value="" selected>- Select -</option>
                                        </select>
                                    </div>
                                    <div class="form-group">
                                        <label><strong>Area*</strong></label>
                                        <select id="area" data-plugin="select2" class="form-control select2" name="area">
                                            <option value="" selected>- Select -</option>
                                        </select>
                                    </div>
                                    
                                </div>
                                <div class="col-md-6">
                                </div>
                            </div> <br>
                            <div class="form-group">
                                <button type="submit" name="<?= $page ?>" class="btn btn-success btn-flat">
                                    <i class="fa fa-paper-plane"></i> Save</button>
                                <button type="reset" class="btn btn-flat">Reset</button>
                            </div>
                        </form>
                    </div>
                </div>
            </div>
        </div>
    </div>
</section>

<!-- Dropdown Nested -->

    <script type="text/javascript">
        // Vendor
        $(document).ready(function() {
            $("#vendor").select2({
                ajax: {
                    url: '<?= base_url() ?>tes/getdatavendor',
                    type: "post",
                    dataType: 'json',
                    delay: 200,
                    data: function(params) {
                        return {
                            searchTerm: params.term
                        };
                    },
                    processResults: function(response) {
                        return {
                            results: response
                        };
                    },
                    cache: true
                }
            });
        });

        // Province
        $("#vendor").change(function() {
            var id_prov = $("#vendor").val();
            $("#province").select2({
                ajax: {
                    url: '<?= base_url() ?>tes/getdataprovince/' + id_prov,
                    type: "post",
                    dataType: 'json',
                    delay: 200,
                    data: function(params) {
                        return {
                            searchTerm: params.term
                        };
                    },
                    processResults: function(response) {
                        return {
                            results: response
                        };
                    },
                    cache: true
                }
            });
        });

        // Area
        $("#province").change(function() {
            var id_kab = $("#province").val();
            $("#area").select2({
                ajax: {
                    url: '<?= base_url() ?>tes/getdataarea/' + id_kab,
                    type: "post",
                    dataType: 'json',
                    delay: 200,
                    data: function(params) {
                        return {
                            searchTerm: params.term
                        };
                    },
                    processResults: function(response) {
                        return {
                            results: response
                        };
                    },
                    cache: true
                }
            });
        });

    </script>
views and javascript
 
Back
Top Bottom