Ver Mensaje Individual
  #6 (permalink)  
Antiguo 14/09/2015, 14:37
Avatar de joseherran
joseherran
 
Fecha de Ingreso: septiembre-2015
Ubicación: cali valle
Mensajes: 23
Antigüedad: 9 años, 2 meses
Puntos: 0
Respuesta: formulario validación Jquery y ajax

este es el controlador del formulario trabaje con nosotros work_with_us.ph
Código PHP:
Ver original
  1. <?php
  2.  
  3. defined('BASEPATH') OR exit('No direct script access allowed');
  4.  
  5. class work_with_us extends Public_Controller {
  6.  
  7.     public function __construct() {
  8.         parent::__construct();
  9.          $models = array('work_with_us_m', 'work_with_us_emails_m');
  10.         $this->load->model($models);
  11.     }
  12.  
  13.     // -----------------------------------------------------------------
  14.  
  15.     public function index()
  16.     {
  17.         // Datos de Contacto
  18.         $_work_with_us = $this->work_with_us_m->get_all();
  19.         $work_with_us = array();
  20.         if (count($_work_with_us) > 0)
  21.         {
  22.             $work_with_us = $_work_with_us[0];
  23.         }
  24.  
  25.         $this->template
  26.                 ->set('work_with_us', $work_with_us)
  27.                 ->build('work_with_us_front');
  28.     }
  29.  
  30.     /*
  31.      *Enviar correo
  32.      */
  33.     function send()
  34.     {
  35.         $this->form_validation->set_rules('name', 'Nombre y Apellido', 'required|trim|max_length[100]');
  36.         $this->form_validation->set_rules('email', 'Correo', 'required|trim|valid_email|max_length[100]');
  37.         $this->form_validation->set_rules('phone', 'Teléfono', 'trim|max_length[30]');
  38.         $this->form_validation->set_rules('cell', 'Celular', 'trim|max_length[30]');
  39.         $this->form_validation->set_rules('company', 'Empresa/Organización', 'trim|max_length[100]');
  40.         $this->form_validation->set_rules('message', 'Mensaje', 'required|trim|max_length[455]');
  41.        
  42.         $statusJson = 'error';
  43.         $msgJson = 'Por favor intenta de mas tarde';
  44.        
  45.         if ($this->form_validation->run() === TRUE)
  46.         {
  47.             $_work_with_us = $this->work_with_us_m->get_all();
  48.             $work_with_us = array();
  49.             if (count($_work_with_us) > 0)
  50.             {
  51.                 $work_with_us = $_work_with_us[0];
  52.             }
  53.             $post = (object) $this->input->post(null);
  54.  
  55.             $data = array(
  56.                 'name' => $post->name,
  57.                 'email' => $post->email,
  58.                 'phone' => $post->phone,
  59.                 'cell' => $post->cell,
  60.                 'company' => $post->company,
  61.                 'message' => $post->message,
  62.             );
  63.            
  64.             // Se carga la imagen
  65.             $config['upload_path'] = './' . UPLOAD_PATH . '/work_with_us';
  66.             $config['allowed_types'] = 'doc|docx|txt|pdf|xls|xlsx';
  67.             $config['max_size'] = 2050;
  68.             $config['encrypt_name'] = true;
  69.    
  70.             $this->load->library('upload', $config);
  71.            
  72.             // imagen uno
  73.             $img = $_FILES['file']['name'];
  74.             $file = array();
  75.             $path = '';
  76.             if (!empty($img)) {
  77.                 if ($this->upload->do_upload('file'))
  78.                 {
  79.                     $datos = array('upload_data' => $this->upload->data());
  80.                     $path = UPLOAD_PATH . 'work_with_us/' . $datos['upload_data']['file_name'];
  81.                     $file = array('file' => $path);
  82.                     $data = array_merge($data, $file);
  83.                 } else {
  84.                     $this->session->set_flashdata('error', $this->upload->display_errors());
  85.                     redirect(base_url().'work_with_us');
  86.                 }
  87.             }
  88.            
  89.             //Validate sendmail
  90.             if( $this->work_with_us_emails_m->insert($data))
  91.             {
  92.                 // se envia el correo al administrador
  93.                 $this->send_email_to_user($data, $work_with_us->email, $path);
  94.                 // se envia el correo a la persona encargada de la pág
  95.                 $this->send_email_to_register($data, $work_with_us->email, $path);
  96.                 $statusJson = 'success';
  97.                 $msgJson = 'Su mensaje ha sido enviado';
  98.             }
  99.             else
  100.             {
  101.                 $statusJson = 'error';
  102.                 $msgJson = 'Error Mailing, Contact the Webmaster';
  103.             }
  104.         } else
  105.         {
  106.             $statusJson = 'error';
  107.             $msgJson = validation_errors();
  108.         }
  109.         $this->session->set_flashdata($statusJson, $msgJson);
  110.         redirect(base_url().'work_with_us');
  111.     }
  112.    
  113.     /**
  114.      * Send an email
  115.      *
  116.      * @param array $comment The comment data.
  117.      * @param array $entry The entry data.
  118.      * @return boolean
  119.      */
  120.     private function send_email_to_user($data, $admin_email, $path)
  121.     {
  122.         $this->load->library('email');
  123.         Events::trigger('email', array(
  124.             'name' => $data['name'],
  125.             'email' => $data['email'],
  126.             'phone' => $data['phone'],
  127.             'company' => $data['company'],
  128.             'message' => $data['message'],
  129.             'slug' => 'work_with_us',
  130.             'attach' => array( 0 => $path),
  131.             /*'email' => Settings::get('contact_email'), // se manda el correo a al de la configuración del pyro*/
  132.             'to' => $admin_email,
  133.         ), 'array');
  134.     }
  135.    
  136.     // envia un correo a la persona que registro la hoja de vida
  137.     private function send_email_to_register($data, $admin_email, $path)
  138.     {
  139.         $this->load->library('email');
  140.         Events::trigger('email', array(
  141.             'name' => $data['name'],
  142.             'email' => $data['email'],
  143.             'phone' => $data['phone'],
  144.             'company' => $data['company'],
  145.             'message' => $data['message'],
  146.             'slug' => 'work_with_us_register',
  147.             'attach' => array( 0 => $path),
  148.             /*'email' => Settings::get('contact_email'), // se manda el correo a al de la configuración del pyro*/
  149.             'to' => $data['email'],
  150.         ), 'array');
  151.     }
  152. }