Madhawa Ratnayake
Madhawa Ratnayake

Reputation: 189

CodeIgniter: How to check either one of the fields is not empty from the required fields

Either one of form fields 'room_number', 'pos_token', 'banquet_token' has to be filled in order to continue. That was the requirement and I wrote this code and ended up with conflicts with other parts of the code and it didn't work at all.

$room_number = $this->input->post('room_number');
$pos_token = $this->input->post('pos_token');
$banquet_token = $this->input->post('banquet_token');

if(isset ($room_number) && strlen($room_number) && ($pos_token) && strlen($pos_token) && ($banquet_token) && strlen($banquet_token) ) {
    return true;
    }
else {
    return true;
    }

Upvotes: 0

Views: 6907

Answers (4)

Swathy M Nair
Swathy M Nair

Reputation: 23

$room_number = $this->input->post('room_number');   
$pos_token = $this->input->post('pos_token');
$banquet_token = $this->input->post('banquet_token');

if($room_number=="" || $pos_token=="" || $banquet_token=="")
    return true;
else 
    return false;

Upvotes: 0

Rajeev Ranjan
Rajeev Ranjan

Reputation: 4142

you need to set rules for input fields

$this->form_validation->set_rules('username', 'Username', 'required');
if ($this->form_validation->run() == FALSE)
  {
    //run your code on success here
  }
else
  {
    //run your code on failure here
  }

Upvotes: 3

GautamD31
GautamD31

Reputation: 28753

You need to return false on the condition fails like

if(isset ($room_number) && strlen($room_number) && ($pos_token) && strlen($pos_token) && ($banquet_token) && strlen($banquet_token) ) {
    return true;
}
else {
    return false;
}

and for your condition you need to check with OR condition like

if( ( isset ($room_number) && strlen($room_number)) || 
    ( isset ($pos_token) && strlen($pos_token)) || 
    ( isset ($banquet_token) && strlen($banquet_token))
  ) {

Upvotes: 2

Bad Wolf
Bad Wolf

Reputation: 8349

Just use the || OR operator in your if statement. and return false if the test fails.

$room_number = $this->input->post('room_number');
$pos_token = $this->input->post('pos_token');
$banquet_token = $this->input->post('banquet_token');

 if(!empty($room_number) || !empty($pos_token) || !empty($banquet_token))
    return true;
else 
    return false;

Upvotes: 1

Related Questions