मैं कोडइग्निटर पर पोस्ट के बाद कुछ डेटा संपादित करना चाहता हूं।

समस्या यह है कि जब मैं संपादित करता हूं, तो डेटा अपडेट नहीं होता है, लेकिन कोई त्रुटि संदेश भी प्रदर्शित नहीं होता है। क्यों?

यह मेरा नियंत्रक है

public function edit()
{   

    $user = $this->db->get_where('user', ['user_name' => $this->session->userdata('user_name')])->row_array();

    $this->form_validation->set_rules( 'nama', 'Full Name', 'required',
                               array ( 'required'           => '%s Wajib Harus Diisi'));

    $this->form_validation->set_rules( 'company', 'Company', 'required',
                               array ( 'required'           => '%s Wajib Harus Diisi'));

    $this->form_validation->set_rules( 'hphone', 'Hphone', 'required',
                               array ( 'required'           => '%s Wajib Harus Diisi'));

    $this->form_validation->set_rules( 'website', 'Website');

    $this->form_validation->set_rules ( 'email', 'Email', 'required|valid_email',
                                array ( 'required'          => '%s Wajib Harus Diisi',
                                        'valid_email'       => 'Format $s tidak Valid'));


    if ($this->form_validation->run() == FALSE) {

    $data = array ( 'head_title'        => 'Edit User Profile- Edutech Solution',
                    'title'             => 'Edit Data User',
                    'head_menu'         => 'User Administrator',
                    'sub_title'         => 'Total User',
                    'user'              =>  $user,
                    'isi'               => 'superadmin/user/edit',
                  );

    $this->load->view('superadmin/template/wrapper_admin', $data, FALSE);   

    } else  {   

                $user_name  = $this->input->post('user_name');
                $nama       = $this->input->post('nama');
                $hphone     = $this->input->post('hphone');
                $company    = $this->input->post('company');
                $website    = $this->input->post('website');
                $email      = $this->input->post('email');

                        // jika ada gambar yang di upload
                        $upload_image = $_FILES['image']['nama'];

                        if($upload_image){

                            $config['allowed_types']    = 'gif|jpg|png';
                            $config['max_size']         = '2048'; // 2 MB
                            $config['upload_path']      = '.resch/dev/admin/assets/media/';

                            $this->load->library('upload', $config);

                            if($this->upload->do_upload('image')) {
                                // cek gambar agar tidak doble dan file default tidak terhapus
                                $old_image  = $data['user']['image'];
                                if ($old_image != 'default.png')
                                {
                                    unlink(FCPATH .'resch/dev/admin/assets/media/' .$old_image );
                                }


                                $new_image  = $this->upload->data('file_name');
                                $this->db->set('image', $new_image);


                            }else{
                                echo $this->upload->dispay_errors();
                            }
                        }
                        // END jika ada gambar yang di upload

                $this->db->set('nama', $nama);
                $this->db->set('hphone', $hphone);
                $this->db->set('company', $company);
                $this->db->set('website', $website);
                $this->db->set('email', $email);

                $this->db->where('id_user', $id_user);
                $this->db->update('user');

                // $this->user_model->edit($data);
                $this->session->set_flashdata('msg', 'Data Telah Diupdate');
                redirect(base_url('superadmin/user/edit'),'refresh');

        }
}

और दूसरी त्रुटि, चित्र के साथ अद्यतन डेटा काम नहीं करता है।

यह दृश्य संपादन

<?php 
    echo form_open_multipart(base_url('superadmin/user/edit')); 
    ?>

    <div class="kt-form kt-form--label-right">
      <div class="kt-portlet__body">
        <div class="kt-section kt-section--first">
          <div class="kt-section__body">
            <div class="row">
              <label class="col-xl-3"></label>
              <div class="col-lg-9 col-xl-6">
                <h3 class="kt-section__title kt-section__title-sm">User Info:</h3>
              </div>
            </div>
            <div class="form-group row">
              <label class="col-xl-3 col-lg-3 col-form-label">Avatar</label>
              <div class="col-lg-9 col-xl-6">
                <div class="kt-avatar kt-avatar--outline" id="kt_user_avatar">
                  <div class="kt-avatar__holder" style="background-image: url(<?php echo base_url('resch/dev/admin/assets/media/').$user['image'] ?>)">
                  </div>
                  <label for="image" class="kt-avatar__upload" data-toggle="kt-tooltip" title="" data-original-title="Change avatar">
                    <i class="fa fa-pen"></i> 
                    <input class="custom-file-input" type="file" name="image" id="image" accept="image/*">
                  </label>
                  <span class="kt-avatar__cancel" data-toggle="kt-tooltip" title="" data-original-title="Cancel avatar">
                    <i class="fa fa-times"></i>
                  </span>
                </div>
              </div>
            </div>
            <div class="form-group row">
              <label for="nama" class="col-xl-3 col-lg-3 col-form-label">Full Name</label>
              <div class="col-lg-9 col-xl-6">
                <input class="form-control" type="text" name="nama" id="nama" value="<?php echo set_value('$user->nama')?>">
              </div>
            </div>

मैंने कई बार कोड की जाँच की है, लेकिन मुझे कोई त्रुटि नहीं मिली। कृपया मदद करें ताकि इस समस्या का समाधान किया जा सके

0
Yana Mulyana 29 मई 2020, 20:46

1 उत्तर

सबसे बढ़िया उत्तर

आपके अन्य में, नियंत्रक का हिस्सा केवल तालिका को अपडेट करने के लिए नीचे दिए गए कोड का उपयोग करता है

$data = array(
        'user_name'  => $this->input->post('user_name'),
        'nama'       => $this->input->post('nama'),
        'hphone'   => $this->input->post('hphone'),
        'company'    => $this->input->post('company'),
        'website'    => $this->input->post('website'),
        'email'      => $this->input->post('email')
        );
       $this->db->where('id_user', $id_user);
       $this->db->update('user',$data);

अपनी दृश्य फ़ाइल में कोड को बदल दें

 <form method = "post" action="base_url('superadmin/user/edit')" multipart >

        <div class="kt-form kt-form--label-right">
          <div class="kt-portlet__body">
            <div class="kt-section kt-section--first">
              <div class="kt-section__body">
                <div class="row">
                  <label class="col-xl-3"></label>
                  <div class="col-lg-9 col-xl-6">
                    <h3 class="kt-section__title kt-section__title-sm">User Info:</h3>
                  </div>
                </div>
                <div class="form-group row">
                  <label class="col-xl-3 col-lg-3 col-form-label">Avatar</label>
                  <div class="col-lg-9 col-xl-6">
                    <div class="kt-avatar kt-avatar--outline" id="kt_user_avatar">
                      <div class="kt-avatar__holder" style="background-image: url(<?php echo base_url('resch/dev/admin/assets/media/').$user['image'] ?>)">
                      </div>
                      <label for="image" class="kt-avatar__upload" data-toggle="kt-tooltip" title="" data-original-title="Change avatar">
                        <i class="fa fa-pen"></i> 
                        <input class="custom-file-input" type="file" name="image" id="image" accept="image/*">
                      </label>
                      <span class="kt-avatar__cancel" data-toggle="kt-tooltip" title="" data-original-title="Cancel avatar">
                        <i class="fa fa-times"></i>
                      </span>
                    </div>
                  </div>
                </div>
                <div class="form-group row">
                  <label for="nama" class="col-xl-3 col-lg-3 col-form-label">Full Name</label>
                  <div class="col-lg-9 col-xl-6">
                    <input class="form-control" type="text" name="nama" id="nama" value="<?php echo set_value('$user->nama')?>">
                  </div>
                </div>

    <input type="submit" name="submit" value="sumbit" >
    </form>

हालांकि मैं आपको सीधे नियंत्रक से अपडेट करने का सुझाव नहीं देता, किसी भी डेटाबेस से संबंधित क्वेरी के लिए आपको हमेशा मॉडल का उपयोग करना चाहिए

1
Jagadish Meghval 30 मई 2020, 05:46