2016-07-16 3 views
0

Ich arbeite gerade an einem Programm, das PHP jquery und Bootstrap verwendet, die Update-Funktion, es gibt einen Fehler, so dass die Datenbank nicht ändert, aber das Skript normal läuft, Vielleicht kann mir jemand helfen, wo ist mein Fehler? danke

Mein Controller

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 

class Subbidang extends CI_Controller { 

public function index() 
{ 
    $this->load->model('model_subbidang'); 
    $this->model_security->getsecurity(); 
    $isi['content'] = 'Subbidang/tampilan_datasubbidang'; 
    $isi['judul'] = 'Master'; 
    $isi['sub_judul'] = 'Sub Bidang'; 
    $isi['data'] = $this->db->get('tsubbidang'); 
    $this->load->view('tampilan_home',$isi); 

} 

public function tambah() 
{ 
    $this->load->model('model_subbidang'); 
    $this->model_security->getsecurity(); 
    $isi['content'] = 'Subbidang/form_tambahsubbidang'; 
    $isi['judul'] = 'Master'; 
    $isi['sub_judul'] = 'Sub Bidang'; 
    $this->load->view('tampilan_home',$isi); 
} 

public function simpan() 
{ 
    $this->model_security->getsecurity(); 
    $this->load->model('model_subbidang'); 

    $key['IDSubBidang'] = $this->input->post('kode'); 
    $data['IDSubBidang'] = $this->input->post('kode'); 
    $data['IDBidang']  = $this->input->post('bidang'); 
    $data['NamaSubBidang'] = $this->input->post('subbidang'); 

    $query = $this->db->get_where('tsubbidang',$key); 

    if ($query->num_rows()>0) 
    { 
     $this->db->update('tsubbidang',$key,$data); 
     //echo "Data Berhasil Diubah"; 
     echo "Update"; 
    } 
    else 
    { 
     $this->db->insert('tsubbidang',$data); 
     //xecho "Data Berhasil Disimpan"; 
     echo 'Insert'; 
    } 
} 

} 

/* End of file welcome.php */ 
/* Location: ./application/controllers/welcome.php */ 

My View

<script type="text/javascript"> 
$(document).ready(function(){ 


$("#simpan").click(function(){ 
var string = $("#my-form").serialize(); 
//alert(string); 
$.ajax({ 
      type : 'POST', 
      url  : '<?php echo site_url();?>/subbidang/simpan', 
      data : string, 
      success : function(data){ 
       alert(data); 
      } 
     }); 
    }); 
}); 
</script> 
<form class="form-horizontal" name="my-form" id="my-form"> 
<div class="control-group"> 
    <label class="control-label"bidang</label> 
    <div class="controls"> 
     <select name="bidang" id="bidang"> 
      <option value="">-Pilih-</option> 
      <?php 

      $bidang = $this->db->get('tbidang'); 
      foreach ($bidang->result() as $row) { 

      ?> 
      <option value="<?php echo $row->IDBidang;?>"><?php echo $row->Bidang;?> </option> 
      <?php };?> 
     </select> 
    </div> 
</div> 

<div class="control-group"> 
    <label class="control-label">Kode Sub Bidang</label> 
    <div class="controls"> 
     <input type="text" name="kode" id="kode" palceholder="kode" class="span3"> 
    </div> 
</div> 

<div class="control-group"> 
    <label class="control-label">Sub Bidang</label> 
    <div class="controls"> 
     <input type="text" name="subbidang" id="subbidang" palceholder="Sub Bidang" class="span3"> 
    </div> 
</div> 

<div class="controls"> 

    <button type="button" name="simpan" id="simpan" class="btn btn-primary btn-small"> Simpan</button> 
</div> 

My Model

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 

class Model_subbidang extends CI_model { 

    public function gettampildatasubbidang($key) 
    { 
     $this->db->where('IDBidang',$key); 
     $query = $this->db->get('tbidang'); 
     if($query->num_rows()>0) 
     { 
      foreach ($query -> result() as $row) { 
       $hasil = $row->Bidang; 
      } 
     } 
     else 
     { 
      $hasi=''; 
     } 

     return $hasil; 
    } 

    public function getlistsubbidang() 
    { 
     return $this->db->get('tbidang'); 
    } 

    public function getdata($key) 
    { 
     $this->db->where('IDBidang',$key); 
     $hasil = $this->db->get('tBidang'); 
     return $hasil; 
    } 

    public function getupdate($key,$data) 
    { 
     $this->db->where('IDBidang',$key); 
     $this->db->update('tBidang',$data); 
    } 

    public function getinsert($key,$data) 
    { 
     $this->db->insert('tBidang',$data); 
    }A 


} 

/* End of file welcome.php */ 
/* Location: ./application/controllers/welcome.php */ 

Das Echo Arbeit in Ordnung, aber die Datenbank doesnt ändern. Die Insert-Funktion funktioniert auch in Ordnung

Antwort

0

Sie benötigen richtige Daten zu übergeben Funktion Änderung

$this->db->update('tsubbidang',$key,$data); 

zu

$this->db->where('IDBidang', $key); 
$this->db->update('tsubbidang',$data); 

und alles in Ordnung sein wird zu aktualisieren. und eine weitere Sache ist, dass Sie die Funktionalität im Zusammenhang mit der Datenbank in Ihrem Modell nicht direkt im Controller tun müssen, ist es nicht nach der MVC-Struktur. Es zerstört es. und wenn Sie alles einzeln gemacht haben, dann ist es leicht zu verstehen und klar für alle, die nach Ihnen auf dem gleichen Code.

+0

Ich habe den Code geändert, aber dann funktioniert der Button nicht –

+0

Sie müssen '$ (" # my-form ") verwenden. Submit();' stattdessen; und setzen Sie den Knopftyp als 'submit'; nach dem Ausführen des Skripts gibt false zurück, so dass es die Seite nicht aktualisiert –

+0

Jetzt funktioniert die Einfüge- und Update-Funktion nicht, es ändert nur die Adressleiste in 'index.php/subbidang/tambah? bidang = BD002 & kode = SDM & subbidang = SDM & simpan = .' –

Verwandte Themen