Ver Mensaje Individual
  #1 (permalink)  
Antiguo 17/03/2013, 23:25
Avatar de bocho0610
bocho0610
 
Fecha de Ingreso: enero-2010
Ubicación: <? echo "Santiago, Chile"; ?>
Mensajes: 341
Antigüedad: 14 años, 10 meses
Puntos: 26
Problema con formulario al subir imagen

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 original
  1. public function add_date() {
  2.         $data = array(
  3.             "id" => "",
  4.             "titulo" => "",
  5.             "url" => "",
  6.             "descripcion" => "",
  7.             "error" => ""
  8.         );
  9.  
  10.         $id = $this->input->post("id");
  11.         $titulo = $this->input->post("titulo");
  12.         $url = $this->input->post("url");
  13.         $descripcion = $this->input->post("descripcion");
  14.  
  15.         $this->set_rules();
  16.  
  17.         if($this->form_validation->run() == FALSE){
  18.             $this->load->view('form-slider', $data);
  19.         }else{
  20.             $config['upload_path'] = '../images/slider';
  21.             $config['allowed_types'] = 'gif|jpg|jpeg|png';
  22.             $config['max_size'] = '100';
  23.             $config['max_width'] = '650';
  24.             $config['max_height'] = '300';
  25.             $config['encrypt_name'] = true;
  26.  
  27.             $this->load->library('upload', $config);
  28.  
  29.             if(!$this->upload->do_upload("imagen")){
  30.                 $data["id"] = $id;
  31.                 $data["error"] = $this->upload->display_errors();
  32.                 $this->load->view('form-slider', $data);
  33.             }else{
  34.                 $file_info = $this->upload->data();
  35.                 $data = array(
  36.                     'sli_id' => $id,
  37.                     'sli_img' => $file_info['file_name'],
  38.                     'sli_titulo' => $titulo,
  39.                     'sli_texto' => $descripcion,
  40.                     'sli_url' => $url
  41.                 );
  42.                 $add = $this->model_slider->add($data);
  43.                 if($add){
  44.                     $this->session->set_flashdata('success', 'Se a creado el registro satisfactoriamente');
  45.                 }else{
  46.                     $this->session->set_flashdata('error', 'Los datos no puedieron ser registrados');
  47.                 }  
  48.                 redirect("slider", "refresh");
  49.             }
  50.         }
  51.     }

Obviamente si saco la validacion puedo hacer lo que quiero, pero no seria la idea =/

Código PHP:
Ver original
  1. if(!$this->upload->do_upload("imagen")){
  2.  
  3.                 $data["id"] = $id;
  4.  
  5.                 $data["error"] = $this->upload->display_errors();
  6.  
  7.                 $this->load->view('form-slider', $data);
  8.  
  9. }
__________________
Sigueme en Twitter!
Septimoarte.cl <-- Un mundo en cine.

Última edición por bocho0610; 17/03/2013 a las 23:57