【问题标题】:missing argument edit data with upload image in codeigniter在codeigniter中使用上传图像缺少参数编辑数据
【发布时间】:2017-01-07 02:55:15
【问题描述】:

我认为我已经正确编写了此代码,但是我在缺少参数时遇到了问题,我选择了要上传的文件图像,但我也遇到了这样的错误。

遇到 PHP 错误 严重性:警告 消息:Data_guru::edit() 缺少参数 1 文件名:tim_monitoring/Data_guru.php 行号:90 回溯: 文件:C:\xampp\htdocs\sdb\application\controllers\tim_monitoring\Data_guru.php 线路:90 函数:_error_handler 文件:C:\xampp\htdocs\sdb\index.php 线路:315 函数:require_once 您没有选择要上传的文件。

感谢您的回答

我的控制器

public function edit($id) {
$this->form_validation->set_rules('nama_guru','Nama Guru','required');      
$this->form_validation->set_rules('alamat','Alamat','required');

    if ($this->form_validation->run() === FALSE) {
        $data = array ('title'  => 'Edit Data Guru',
                       'detail' => $this->monitoring_model->detail_guru($id),
                       'isi'    => 'monitoring/edit_guru_view'
                       );
    $this->load->view('monitoring/layout/wrapper',$data);
    //Kalau Tidak Ada Error Data Guru DiUpdate
    }else{
            $config['file_name']            = $this->input->post('nama_guru');
            $config['upload_path']          = './assets/image/guru/';
            $config['allowed_types']        = 'gif|jpg|png';
            $config['max_size']             = 3000;
            $config['max_width']            = 3000;
            $config['max_height']           = 3000;

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

            if ( ! $this->upload->do_upload('foto_guru'))
            {
                    echo $this->upload->display_errors();
            }
            else
            {
                    $gbr = $this->upload->data();
                    $data = array(
                            'foto_guru'     => $gbr['file_name'],
                            'id_guru'       => $this->input->post('id_guru'),
                            'nama_guru'     => $this->input->post('nama_guru'),
                            'jenis_kelamin' => $this->input->post('jen_kel'),
                            'alamat'        => $this->input->post('alamat'),
                            'tempat_lahir'  => $this->input->post('tempat_lahir'),
                            'tgl_lahir'     => $this->input->post('tgl_lahir'),
                            'no_hp'         => $this->input->post('no_hp'),
                            'username'      => $this->input->post('username'),
                            'password'      => $this->input->post('password')
                    );

        $this->monitoring_model->edit_guru($data);
        redirect(base_url().'tim_monitoring/data_guru');
    }
 }
}

我的模特

 //Menampilkan Detail Guru Di Halaman Edit Guru
public function detail_guru($id) {
    $query = $this->db->get_where('t_guru', array('id_guru' => $id));
    return $query->row_array();
}

//Update Data Guru Setelah Di Edit Di Halaman Edt
public function edit_guru($data) {
    $this->db->where('id_guru',$data['id_guru']);
    return $this->db->update('t_guru',$data);
}

我的观点

<form action="<?php echo base_url() ?>/tim_monitoring/data_guru/edit"    class="form-horizontal" method="post">
      <div class="form-group">
        <label for="inputEmail3" class="col-sm-4 control-label">Nama Guru</label>
        <div class="col-sm-6">
          <input type="text" name="nama_guru" class="form-control" placeholder="Nama Guru" value="<?php echo $detail['nama_guru'] ?>" required>
        </div>
      </div>
      <div class="form-group">
        <label for="inputPassword3" class="col-sm-4 control-label">Tempat Lahir</label>
        <div class="col-sm-6">
          <input type="text" name="tempat_lahir" class="form-control" placeholder="Tempat Lahir"  value="<?php echo $detail['tempat_lahir'] ?>" required>
        </div>
      </div>
      <div class="form-group">
        <label for="inputPassword3" class="col-sm-4 control-label">Tanggal Lahir</label>
        <div class="col-sm-6">
          <input type="date" name="tgl_lahir" class="form-control" value="<?php echo $detail['tgl_lahir'] ?>" required>
        </div>
      </div>
      <div class="form-group">
        <label for="inputPassword3" class="col-sm-4 control-label">Alamat</label>
        <div class="col-sm-6">
          <textarea name="alamat" class="form-control" rows="4" required><?php echo $detail['alamat'] ?></textarea>
        </div>
      </div>
      <div class="form-group">
        <label for="inputPassword3" class="col-sm-4 control-label">No Handphone</label>
        <div class="col-sm-6">
          <input type="number" name="no_hp" class="form-control" placeholder="No Handphone" value="<?php echo $detail['no_hp'] ?>" required>
        </div>
      </div>
      <div class="form-group">
        <label class="col-sm-4 control-label">Foto</label>
        <div class="col-sm-6">
              <input type="file" name="foto_guru" id="exampleInputFile" required>
        </div>
      </div>
      <div class="form-group">
        <label for="inputPassword3" class="col-sm-4 control-label">Username</label>
        <div class="col-sm-6">
          <input type="text" name="username" class="form-control" placeholder="Username" value="<?php echo $detail['username'] ?>" required>
        </div>
      </div>
      <div class="form-group">
        <label for="inputPassword3" class="col-sm-4 control-label">Password</label>
        <div class="col-sm-6">
          <input type="password" name="password" class="form-control" placeholder="Password" value="<?php echo $detail['password'] ?>" required>
        </div>
      </div>
      <div class="form-group">
        <label for="inputPassword3" class="col-sm-4 control-label">Jenis Kelamin</label>
        <div class="col-sm-6">
          <input type="radio" name="jen_kel" value="L"><label>&nbsp;Laki - Laki</label>&nbsp;&nbsp;
          <input type="radio" name="jen_kel" value="P"><label>&nbsp;Perempuan</label>
        </div>
      </div>

        <input type="hidden" name="id_guru" class="form-control" value="<?php echo $detail['id_guru'] ?>" required>

      <div class="form-group">
        <div class="col-sm-4">
        </div>
        <div class="col-sm-6">
          <button type="submit" class="btn btn-primary">Ubah Data</button>
        </div>
      </div>
    </form>  

【问题讨论】:

  • 您需要传递 id 以在页面加载时形成操作。 &lt;form action="&lt;?php echo base_url() ?&gt;/tim_monitoring/data_guru/edit/&lt;?php echo $id;//this one you have to pass from controller when page is loaded?&gt;" class="form-horizontal" method="post"&gt;.
  • 当我使用您的代码时,缺少的参数不会再次显示,但是上传图像和输入数据在数据库中仍然没有改变。上传图片错误“您没有选择要上传的文件”。谢谢你的回答伙伴。

标签: php mysql codeigniter


【解决方案1】:

请参阅 tim_monitoring/Data_guru.php 方法的 edit() 必须要求将一个参数作为变量 $id 的值传递.

因此,您需要在表单的操作中添加以下 URL

action="&lt;?php echo base_url() ?&gt;/tim_monitoring/data_guru/edit/&lt;?php echo $detail['id_guru'] ?&gt;"

上传图片表单必须需要属性enctype="multipart/form-data"

【讨论】:

  • 在上传图片中我收到错误您尝试上传的文件类型和大小是不允许的。我上传我的文件图像并不比我的配置大,但为什么我得到这个错误。在插入数据中,我使用此代码并且可以,但不能在编辑中。谢谢你的回答伙伴
猜你喜欢
  • 2021-11-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-26
相关资源
最近更新 更多