Actualmente estoy en mi controlador y he colocado un cheque en el controlador. Básicamente comprobando si el valor de un campo en particular es 0 o no. Ahora, si es 0, quiero mostrar una ventana emergente de alerta a través de mi controlador. Para ello he probado con el siguiente código:
public function status($status){ if($this->input->post('id')){ foreach($this->input->post('id') as $key => $id): $check_emirate = $this->listings_model->check_emirate($id); if($check_emirate->emirate == 0){ echo "<script>alert('This card was not approved.');</script>"; }else{ $data=array('status'=>$status); $updated=$this->listings_model->update($data,array(),$id); } endforeach; } return true; }Ahora está ingresando mi condición if, pero no me muestra la ventana emergente.
Esta es la llamada AJAX que estoy haciendo para habilitar esta función:
$(".status").click(function(e) { chagestatus($(this)); } function chagestatus(obj){ if($('.chkbx').is(':checked') == true){ $.ajax({ type: "post", dataType: "json", async:false, url: "<?php echo site_url('listings/status'); ?>/"+obj.data('val'), data: $(".chkbx:checked").serialize(), success: function(result) {} }); } }Otra cosa que he probado aquí es usar json_encode de esta manera:
if($check_emirate->emirate == 0){ $data = "<script>alert('This card was not approved, Thanks.');</script>"; echo json_encode($data); } success: function(result) { result = JSON.parse(result); }Pero esto tampoco devolvió ninguna respuesta.
Si la función en su controlador funciona bien, entonces necesita agregar su resultado del servidor a su DOM:
success: function(result) { $('body').append(result); }