簡體   English   中英

如何使用 Ajax 將變量值傳遞給 CodeIgniter 控制器?

[英]How to pass a variable value to CodeIgniter Controller with Ajax?

我正在嘗試使用 AJAX 將數據傳遞給控制器​​,但由於某種原因數據沒有被發送。

控制器:

class Home extends CI_Controller 
{

public function __construct() 
{

    parent::__construct();

    //$this->d['module'] = 'home';
    $this->load->model('menu');
    $this->load->model('harta_baru/proses_harta');
  }

public function Proses_Harta()
{
  $this->d['harta'] = $this->proses_harta->tarikh();
  $tarikh = $this->input->post('tarikh');
  $this->d['harta2'] = $this->proses_harta->harta($tarikh);
  $this->load->view('harta_baru/proses_harta',$this->d);
}

}

看法:

<div class="col-lg-6">
    <!-- <input type="text" class="form-control" placeholder="Sila Masukkan Tarikh" name="tarikh"/>-->
    <select class="select2_demo_3 form-control" name="tarikh" id="tarikh">
        <option name="tarikh">--Sila Pilih Tarikh--</option>
        <option name="tarikh" value="00">SEMUA</option>
        <?php  foreach ($harta as $row)
{ ?>
            <option name="tarikh" value="<?php echo $row['TARIKH']; ?>">
                <?php echo $row['TARIKH']; }?>
            </option>
    </select>

</div>

<button class="btn btn-sm btn-primary login-submit-cs" type="submit" name="cari" id="hantar">Hantar</button>
<button class="btn btn-white" type="reset" onClick="window.location='../home/proses_harta';">Reset</button>

<script>
    $('#hantar').click(function(e) {
        e.preventDefault();
        var tarikh = $('#tarikh').val();
        //var url = "<?php echo base_url(); ?>index.php/home/proses_harta";
        console.log("hantar: " + tarikh);
        $.ajax({
            url: "<?php echo base_url(); ?>index.php/home/proses_harta",
            method: "POST",
            data: {
                'tarikh': tarikh
            },
            success: function(data) {
                console.log('ok');
            },
            error: function(data) {
                console.log('error');
            }
        });
    });
</script>

模型:

class Proses_Harta extends CI_Model 
{

function __construct()
{
    parent::__construct();
    //$this->load->helper('cookie');
    $this->load->helper(array('cookie', 'url')); 
}

public function tarikh() 
{
    $query = $this->db->query("select distinct(to_char(thantar,'dd/mm/yyyy')) as tarikh from pnlkew.harta_penilaian_smk WHERE  jeniskes=1 and status='N' ORDER BY 
    to_date(to_char(thantar,'dd/mm/yyyy'),'dd/mm/yyyy') ASC");
    return $query->result_array();


}public function harta($tarikh) 
{

        $query = $this->db->query("select noakaun, KUID,to_char(tkk,'dd/mm/yyyy') TKK, decode(MUKIM,'01','KLANG UTARA','KLANG SELATAN') MUKIM, KOD_KEMENTERIAN, 
        NAMA_KEMENTERIAN, to_char(thantar,'dd/mm/yyyy') thantar,
        KOD_JABATAN, NAMA_JABATAN,KOD_KERAJAAN,NAMA_KERAJAAN,PEMILIK, NT, KADAR,(NT*KADAR/100/2) HASIL from pnlkew.harta_penilaian_smk WHERE  jeniskes=1 and status='N' 
        and thantar = to_char(to_date('$tarikh','dd/mm/yyyy'))");

    return $query->result_array();

}

如何使用 Ajax 將變量值傳遞給 CodeIgniter 控制器?

首先,我認為請使用輸入類型提交而不是按鈕。

<input type="submit" class="btn btn-sm btn-primary login-submit-cs" id="hantar" value"Hantar">

第二件事,像這樣改變你的代碼:

<script>
     $('#hantar').click(function(e) {
        e.preventDefault();
        var tarikh = $('#tarikh').val();
        var url =  <?php echo base_url('home/proses_harta'); ?>;
        console.log("hantar: " + tarikh);
        $.ajax({
            url: url,
            method: "POST",
            data: {
                'tarikh': tarikh
            },
            success: function(data) {
                console.log(data);
            },
            error: function(data) {
                console.log(data);
            }
        });
  });
</script>

請檢查您的模型該功能是否成功運行?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM