tengo funcionando un slider que tiene su propio panel. Uso el mismo formulario para registrar y editar los datos. Con este, subo una imagen y registro el nombre del archivo, descripcion, titulo y fecha en la base de datos, todo bien cuando registro datos.
Cuando edito un registro no me permite seguir, porque tiene requerido (por defecto) que seleccione un archivo, por ende cuando quiero editar un dato obligadamente debo seleccionar una imagen.
No entiendo como hacer para que no sea requerida la imagen al momento de editar datos, que el registro de la imagen y los demas sean independientes.
GRacias.
Mi controlador:
Código PHP:
Ver originalpublic function add_date() {
"id" => "",
"titulo" => "",
"url" => "",
"descripcion" => "",
"error" => ""
);
$id = $this->input->post("id");
$titulo = $this->input->post("titulo");
$url = $this->input->post("url");
$descripcion = $this->input->post("descripcion");
$this->set_rules();
if($this->form_validation->run() == FALSE){
$this->load->view('form-slider', $data);
}else{
$config['upload_path'] = '../images/slider';
$config['allowed_types'] = 'gif|jpg|jpeg|png';
$config['max_size'] = '100';
$config['max_width'] = '650';
$config['max_height'] = '300';
$config['encrypt_name'] = true;
$this->load->library('upload', $config);
if(!$this->upload->do_upload("imagen")){
$data["id"] = $id;
$data["error"] = $this->upload->display_errors();
$this->load->view('form-slider', $data);
}else{
$file_info = $this->upload->data();
'sli_id' => $id,
'sli_img' => $file_info['file_name'],
'sli_titulo' => $titulo,
'sli_texto' => $descripcion,
'sli_url' => $url
);
$add = $this->model_slider->add($data);
if($add){
$this->session->set_flashdata('success', 'Se a creado el registro satisfactoriamente');
}else{
$this->session->set_flashdata('error', 'Los datos no puedieron ser registrados');
}
redirect("slider", "refresh");
}
}
}
Obviamente si saco la validacion puedo hacer lo que quiero, pero no seria la idea =/
Código PHP:
Ver originalif(!$this->upload->do_upload("imagen")){
$data["id"] = $id;
$data["error"] = $this->upload->display_errors();
$this->load->view('form-slider', $data);
}