warning for in_array coming empty

1

I have a code that to generate a PDF it checks what is marked in the checkbox. But if I do not mark anything, it still opens the PDF, only with the blank sheet. You can do a if that if nothing has been marked, display an alert on the screen for the user. My code is written in Codeigniter, and the view of the report has the following code:

if (in_array("foto", $itens)) {
     //código para mostrar a foto se está marcada a opção no checkbox
}

My controller is:

$itens = $this->input->post('itens');
        if (!empty($itens)) {
            $data['itens'] = $itens;
        } else {
            $data['itens'] = array(null);
        }
 $this->load->view('ViewDoRelatorio', $data);
    
asked by anonymous 28.10.2015 / 12:00

2 answers

2

To handle the error, you can do the following:

function seuMetodoQueGeraPDF() {
   /* seu codigo vem dentro do seu método,
      e para qualquer condição de erro, 
      você cria uma exceção. */
  if (!in_array("foto", $itens)) { 
      throw new Exception("Marque a opção selecionada"); 
   }
}

try {
//dentro do "try" você executa seu método de gerar PDF.
 seuMetodoQueGeraPDF();

} catch(Exception $e) {
    echo $e->getMessage(); 
} 
    
28.10.2015 / 12:22
0

You can make use of the try catch block for this, so instead of creating a vector passing null you create a treated error.

  

Code sample

<?php

try {
  $itens = $this->input->post('itens');
  if (!empty($itens)) {
     $data['itens'] = $itens;
  } else {
     throw new Exception('Erro: marque alguma opção!');
  }
  $this->load->view('ViewDoRelatorio', $data);
} catch (Exception $ex) {
     echo $ex->getMessage();
}
    
28.10.2015 / 12:30