Skip to content
Advertisement

Displaying an Alertbox from PHP Controller class

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:

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:

$(".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:

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:

    success: function(result) {
        $('body').append(result);
    }
User contributions licensed under: CC BY-SA
7 People found this is helpful
Advertisement