Currently I’m in my controller and I have placed a check in the controller. Basically checking if the value of a particular field is 0 or not. Now if it is 0, I want to display an alert popup via my controller. To do this I’ve tried the following code:
JavaScript
x
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;
}
Now it is entering my if condition, but it doesnt show me the popup.
This is the AJAX call I’m making to enable this function:
JavaScript
$(".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) {}
});
}
}
Another thing I’ve tried here is using json_encode this way:
JavaScript
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);
}
But this also didn’t give back any response.
Advertisement
Answer
If the function in your controller works well, then you need append your result from server to your DOM:
JavaScript
success: function(result) {
$('body').append(result);
}