0

in my controller I am generating datatables with ajax here is code:

....
$this->loadViews("customers/customer_view", $this->global,  $data);
        $this->load->view ( '/includes/footer' );
    }
        public function ajax_list()
        {
            $this->load->helper('url');

            $list = $this->customer->get_datatables();
            $data = array();
            $no = $_POST['start'];
            foreach ($list as $customer) {
                $no++;
                $row = array();
                $row[] = '<input type="checkbox" class="data-check" value="'.$customer->customerID.'">';
                $row[] = $customer->custcode;
                $row[] = $customer->Name;
                $row[] = $customer->Address;
                $row[] = $customer->CellNo;
                $row[] = $customer->BottlesQty;
                $row[] = $customer->Rate;
                $row[] = $customer->DeliveryDay;
                $row[] = $customer->'<div class=" form-check checkbox-slider-md checkbox-slider--b checkbox-slider-warning"><label><input type="checkbox" name="status" class="status" onclick="toggle(\'.status\', this)" value="0" ''if ( $customer->status == \'\') { echo "checked disabled"; } .''   ><span><div id="statusactive" style="visibility: show; float: left; margin-left: 45px;"> Inactive</div></span> <span><div id="statusinactive" style="visibility: hidden; float: left; margin-left: 45px;"> Inactive</div></span></label></div>';

                //add html for action
                $row[] = '<a class="btn btn-sm btn-primary form-check checkbox-slider-md" href="javascript:void(0)" title="Edit" onclick="edit_person('."'".$customer->customerID."'".')"><i class="glyphicon glyphicon-pencil"></i> Edit</a>
                      <a class="btn btn-sm btn-danger" href="javascript:void(0)" title="Hapus" onclick="delete_person('."'".$customer->customerID."'".')"><i class="glyphicon glyphicon-trash"></i> Delete</a>';

                $data[] = $row;
            }

            $output = array(
                            "draw" => $_POST['draw'],
                            "recordsTotal" => $this->customer->count_all(),
                            "recordsFiltered" => $this->customer->count_filtered(),
                            "data" => $data,
                    );
            //output to json format
            echo json_encode($output);
        }

Datatables generated successfully but when I am trying to format a check box in tablt it is giving following error

Message: syntax error, unexpected ''<div class=" form-check check' (T_CONSTANT_ENCAPSED_STRING), expecting identifier (T_STRING) or variable (T_VARIABLE) or '{' or '$'

The code where is error is as follows:

$row[] = $customer->'<div class=" form-check checkbox-slider-md checkbox-slider--b checkbox-slider-warning"><label><input type="checkbox" name="status" class="status" onclick="toggle(\'.status\', this)" value="0" ''if ( $customer->status == \'\') { echo "checked disabled"; } .''   ><span><div id="statusactive" style="visibility: show; float: left; margin-left: 45px;"> Inactive</div></span> <span><div id="statusinactive" style="visibility: hidden; float: left; margin-left: 45px;"> Inactive</div></span></label></div>';

Please help me to resolve issue. Thanks

u_mulder
  • 54,101
  • 5
  • 48
  • 64
neohacksus
  • 39
  • 7

1 Answers1

0

object->property means that you take property of object. I doubt that your $customer object has property with html-code of div. So, remove $customer:

$row[] = '<div class=" form-check checkbox-slider-md checkbox-slider--b checkbox-slider-warning"><label><input type="checkbox" name="status" class="status" onclick="toggle(\'.status\', this)" value="0" ''if ( $customer->status == \'\') { echo "checked disabled"; } .''   ><span><div id="statusactive" style="visibility: show; float: left; margin-left: 45px;"> Inactive</div></span> <span><div id="statusinactive" style="visibility: hidden; float: left; margin-left: 45px;"> Inactive</div></span></label></div>';

Additional fix is replacing if inside this bunch of html to ternary operator:

$row[] = '<div class=" form-check checkbox-slider-md checkbox-slider--b checkbox-slider-warning">
    <label><input type="checkbox" name="status" class="status" onclick="toggle(\'.status\', this)" value="0" '
     . ( $customer->status == '' ?  "checked disabled" : '' ) . '>
         <span>
             <div id="statusactive" style="visibility: show; float: left; margin-left: 45px;"> Inactive</div>
         </span> 
         <span>
             <div id="statusinactive" style="visibility: hidden; float: left; margin-left: 45px;"> Inactive</div>
         </span>
    </label>
</div>';
u_mulder
  • 54,101
  • 5
  • 48
  • 64