Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/05/2013, 10:50
Avatar de BloodShadow
BloodShadow
 
Fecha de Ingreso: marzo-2010
Ubicación: El Salvador
Mensajes: 393
Antigüedad: 14 años, 1 mes
Puntos: 52
Fancybox y ajax en codeigniter contenidos erroneos

saludos amigos vengo por aca de nuevo solicitando de su ayuda espero me puedan ayudar

La cosa es que tengo una peticion ajax la cual cuando la ejecuto la primer vez me hace las consultas y queries y todo pero me carga contenidos erroneos en el fancy si hay errores de falta de campos sale bien pero cuando esta todo correcto, inserta luego no muestra el fancy hasta la proxima vez que le doy submit....

tengo este bucle para dibujar un listado de videos

Código PHP:
<?
    
if($videos && count($videos) > 0){

      foreach(
$videos as $video){
?>
        <br/>
        <br/>
        <iframe width="200" height="200" src="http://www.youtube.com/embed/<?= $this->videos_model->get_id_video($video->url_video?>" frameborder="0" allowfullscreen></iframe>
<?
        $attr 
'class="formulario_ajax"';
        echo 
form_open('votes/insert',$attr);
        echo 
form_label('User: ','user');
        
$data = array(
          
'name'        => 'user_id',
          
'id'          => 'user_id',
          
'value'       => ''
        
);
        echo 
form_input($data);

        echo 
form_label('Video: ','video');
        
$data = array(
          
'name'        => 'video_id',
          
'id'          => 'video_id',
          
'value'       => $video->id
        
);
        echo 
form_input($data);
        echo 
'<input type="submit" value="VOTAR" class="btn-vote" />';
        echo 
form_close();
      }

    }
?>
Luego tengo mi configuracion del fancy dentro de la peticion ajax

Código Javascript:
Ver original
  1. <script type="text/javascript">
  2.       $(document).ready(function(){
  3.         $(".formulario_ajax").submit(function(e){
  4.           e.preventDefault();
  5.           e.stopPropagation();
  6.           $.ajax({
  7.             url: $(this).attr("action"),
  8.             type: $(this).attr("method"),
  9.             data: $(this).serialize(),
  10.             success: function(data) {
  11.               $.fancybox({
  12.                 'width': 400,
  13.                 'height': 400,
  14.                 'enableEscapeButton' : false,
  15.                 'overlayShow' : true,
  16.                 'overlayOpacity' : 0,
  17.                 'hideOnOverlayClick' : false,
  18.                 'content' : data
  19.               });
  20.             }
  21.           });
  22.  
  23.         });
  24.       });
  25.     </script>

Y por ultimo mi controlador que creo qu por aca anda el problema

Código PHP:
        public function insert(){
            
            
$this->load->model('videos_model');
            
$data['videos'] = $this->videos_model->find_all() ;
            
            
$this->form_validation->set_error_delimiters('<p>''</p>');
            
$this->form_validation->set_rules('user_id''Usuario''required');
            
$this->form_validation->set_rules('video_id''Video''required');

            if(
$this->form_validation->run() === FALSE){
                
$this->load->view('votes/respuesta'$data);
            }else{
        if(
$this->votes_model->has_vote()){
          
$this->session->set_flashdata('message''Ocurrio un error');
        }else{
          
$this->votes_model->insert();
          
$this->session->set_flashdata('message''Gracias por votar');
        }
        
$this->load->view('votes/respuesta');
            }
        }