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();
}
}
?>
Código Javascript:
Ver original
<script type="text/javascript"> $(document).ready(function(){ $(".formulario_ajax").submit(function(e){ e.preventDefault(); e.stopPropagation(); $.ajax({ url: $(this).attr("action"), type: $(this).attr("method"), data: $(this).serialize(), success: function(data) { $.fancybox({ 'width': 400, 'height': 400, 'enableEscapeButton' : false, 'overlayShow' : true, 'overlayOpacity' : 0, 'hideOnOverlayClick' : false, 'content' : data }); } }); }); }); </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');
}
}