当我尝试使用codeigniter 3测试输入重复数据时,表单验证is_unique是错误并显示通知“表不存在”

9cbw7uwe  于 2023-02-27  发布在  其他
关注(0)|答案(1)|浏览(126)

我尝试制作一个javascript弹出窗口/警报来显示表中的数据是否重复,但当我输入相同的数据时,它只显示“A Database Error Occurred Error Number:1146 in codeigniter,table doesn 't exist”。它应该显示我的javascript警报,但不工作。
这是我的控制器:

function __construct()
{
    parent::__construct();
    //load model login_model
    $this->load->model('auth/auth_model');
    $this->auth_model->cek_login();
    $this->load->model("igd/M_Igd"); //load model data
    $this->load->library('PHPJasperXML');
    $this->load->library('form_validation');
}
public function input_aami_som(){
    $SUBJECTIVE = $this->input->post('SUBJECTIVE');
    $OBJECTIVE = $this->input->post('OBJECTIVE');
    $MASALAH = $this->input->post('MASALAH');
    $PLANNING = $this->input->post('PLANNING');
    $TINDAKAN_KONSUL = $this->input->post('TINDAKAN_KONSUL');
    $ASSESMENT = $this->input->post('ASSESMENT');
    $DESKRIPSI_ASSESMENT = $this->input->post('DESKRIPSI_ASSESMENT');
    $TANGGAL = $this->input->post('TANGGAL');
    $OLEH = $this->input->post('OLEH');
    $STATUS = $this->input->post('STATUS');
    $KUNJUNGAN = $this->input->post('KUNJUNGAN');

    
    $this->form_validation->set_rules('KUNJUNGAN', 'KUNJUNGAN', 'trim|required|is_unique[igd_assesment_awal_dokter.KUNJUNGAN]|xss_clean');
        

    if ($this->form_validation->run() == FALSE) {
        echo"<script>alert('Kenangan yang pernah ada')</script>";
    } else {
        $data = array(
        'SUBJECTIVE' => $SUBJECTIVE,
        'OBJECTIVE' => $OBJECTIVE,
        'MASALAH' => $MASALAH,
        'PLANNING' => $PLANNING,
        'TINDAKAN_KONSUL' => $TINDAKAN_KONSUL,
        'ASSESMENT' => $ASSESMENT,
        'DESKRIPSI_ASSESMENT' => $DESKRIPSI_ASSESMENT,
        'TANGGAL' => $TANGGAL,
        'OLEH' => $OLEH,
        'STATUS' => $STATUS,
        'KUNJUNGAN' => $KUNJUNGAN
        );
    $this->M_Igd->input_aami_som($data, 'igd_assesment_awal_dokter');
    $this->session->set_flashdata('message_aami_som','<div class="alert alert-success alert-dismissible mt-1 fade show" role="alert">
                                            Data berhasil dimasukkan
                                            <button type="button" class="close" data-dismiss="alert" aria-label="Close">
                                            <span aria-hidden="true">&times;</span>
                                            </button>
                                            </div>');
    redirect($_SERVER['HTTP_REFERER']);
    }

下面是我模型:

public function input_aami_som($data){
    $this->db->insert('igd_assesment_awal_dokter', $data);
}

以下是我看法:

<form method="post" action="<?php echo base_url().'igd/igd/input_aami_som'?>">
                                <input type="text" class="form-control" name="KUNJUNGAN" value="<?php echo $aami->NOMOR ?>" readonly>
                                <input type="datetime-local" class="form-control" name="TANGGAL" value="<?php echo date("Y-m-d H:i:s") ?>">
                                <input type="text" class="form-control" name="OLEH" value="<?php echo $session_user->nip?>" readonly> 
                                <input type="text" class="form-control mb-1" name="STATUS" value="1" readonly>
                                <?php echo $this->session->flashdata('message_aami_som');?>
                            <div class="row">
                                
                                <div class="col-6">
                                    <label>Subjektif</label>
                                    <input type="text" class="form-control mb-1" name="SUBJECTIVE" required autocomplete="off">
                                    <label>Objektif</label>
                                    <input type="text" class="form-control mb-1" name="OBJECTIVE" required autocomplete="off">
                                    <label>Masalah</label>
                                    <input type="text" class="form-control mb-1" name="MASALAH" required autocomplete="off">
                                    <label>Planning</label>
                                    <input type="text" class="form-control mb-1" name="PLANNING" required autocomplete="off">
                                    <label>Tindakan/Konsultasi</label>
                                    <input type="text" class="form-control mb-1" name="TINDAKAN_KONSUL" required autocomplete="off">
                                    <div class="row mt-2">
                                      <div class="col-4">
                                        <label class="form-check-label" for="">Assesment:</label>
                                        <div class="form-check">
                                          <input class="form-check-input" type="radio" name="ASSESMENT" id="exampleRadios1" value="1">
                                          <label class="form-check-label" for="exampleRadios1">
                                            Diagnosa Awal 
                                          </label>
                                        </div>
                                        <div class="form-check">
                                          <input class="form-check-input" type="radio" name="ASSESMENT" id="exampleRadios2" value="2">
                                          <label class="form-check-label" for="exampleRadios2">
                                            Diagnosa Kerja
                                          </label>
                                        </div>
                                        <div class="form-check">
                                          <input class="form-check-input" type="radio" name="ASSESMENT" id="exampleRadios2" value="3">
                                          <label class="form-check-label" for="exampleRadios2">
                                            Diagnosa Banding
                                          </label>
                                        </div>
                                    </div>
                                    <div class="col-8">
                                      <label class="form-check-label" for="">Deskripsi:</label>
                                      <textarea class="form-control" id="exampleFormControlTextarea1" rows="3" name="DESKRIPSI_ASSESMENT" required autocomplete="off" placeholder="Masukkan deskripsi assesment yang dipilih di sini"></textarea>
                                    </div>
                                    </div>
                                    <button class="btn btn-sm btn-success mt-1 mb-1"> Masukkan</button>
                                </div>
                                </form>

亲爱的聪明善良的人,请帮助我。谢谢

piok6c0g

piok6c0g1#

我刚刚找到了解决方案,我做了一个查询检查表中的数据。这是我的新代码。只是改变控制器像这样:

public function input_aami_som(){
    $SUBJECTIVE = $this->input->post('SUBJECTIVE');
    $OBJECTIVE = $this->input->post('OBJECTIVE');
    $MASALAH = $this->input->post('MASALAH');
    $EKG = $this->input->post('EKG');
    $PLANNING = $this->input->post('PLANNING');
    $TINDAKAN_KONSUL = $this->input->post('TINDAKAN_KONSUL');
    $DIAGNOSA_AWAL = $this->input->post('DIAGNOSA_AWAL');
    $DIAGNOSA_KERJA = $this->input->post('DIAGNOSA_KERJA');
    $DIAGNOSA_BANDING = $this->input->post('DIAGNOSA_BANDING');
    $KET_GAMBAR = $this->input->post('KET_GAMBAR');
    $TANGGAL = $this->input->post('TANGGAL');
    $OLEH = $this->input->post('OLEH');
    $STATUS = $this->input->post('STATUS');
    $KUNJUNGAN = $this->input->post('KUNJUNGAN');

    $data = array(
        'SUBJECTIVE' => $SUBJECTIVE,
        'OBJECTIVE' => $OBJECTIVE,
        'MASALAH' => $MASALAH,
        'EKG' => $EKG,
        'PLANNING' => $PLANNING,
        'TINDAKAN_KONSUL' => $TINDAKAN_KONSUL,
        'DIAGNOSA_AWAL' => $DIAGNOSA_AWAL,
        'DIAGNOSA_KERJA' => $DIAGNOSA_KERJA,
        'DIAGNOSA_BANDING' => $DIAGNOSA_BANDING,
        'KET_GAMBAR' => $KET_GAMBAR,
        'TANGGAL' => $TANGGAL,
        'OLEH' => $OLEH,
        'STATUS' => $STATUS,
        'KUNJUNGAN' => $KUNJUNGAN
    );

    $sql = $this->db->query("SELECT KUNJUNGAN FROM ERM_RSIA.igd_assesment_awal_dokter where KUNJUNGAN='$KUNJUNGAN'"); //code ini untuk cek duplikasi data di table apakah sudah pernah ada/dimasukkan apa belum
    $CEK_KUNJUNGAN = $sql->num_rows(); //buat variabel dulu buat ngecek berdasarkan field KUNJUNGAN
    if ($CEK_KUNJUNGAN > 0) { //kalau datanya udah ada...
     $this->session->set_flashdata('message_aami_som_ada','<div class="alert alert-danger alert-dismissible mt-1 fade show" role="alert"> 
                                            Data ini sudah pernah dimasukkan
                                            <button type="button" class="close" data-dismiss="alert" aria-label="Close">
                                            <span aria-hidden="true">&times;</span>
                                            </button>
                                            </div>'); //...tampilin pesan ini
                                            redirect($_SERVER['HTTP_REFERER']);
            }else{//kalau belum ada/baru pertama kali ya masukin ke table/database langsung
     $this->M_Igd->input_aami_som($data, 'igd_assesment_awal_dokter');
    $this->session->set_flashdata('message_aami_som','<div class="alert alert-success alert-dismissible mt-1 fade show" role="alert">
                                            Data berhasil dimasukkan
                                            <button type="button" class="close" data-dismiss="alert" aria-label="Close">
                                            <span aria-hidden="true">&times;</span>
                                            </button>
                                            </div>');
    redirect($_SERVER['HTTP_REFERER']);
    }

不要忘记添加一些代码来调用flashdata,以显示数据在视图中重复的通知(我不再使用javascript alert):

<form method="post" action="<?php echo base_url().'igd/igd/input_aami_som'?>">
<?php echo $this->session->flashdata('message_aami_som');?>
<?php echo $this->session->flashdata('message_aami_som_ada');?>
// input here...
</form>

相关问题