aboutjquery
aboutjquery

Reputation: 922

PHP check empty post data in array

HTML markup

<input name="one[name]">
<input name="one[email]">
<input name="two[message]">
...
alot input
..

I pass that two array data from jquery to php, i need check if the field is empty by php and exit when find one of them is empty.

But i dont want do it one by one, can it done by php function like foreach or other?

This is what i tried but fail.

$data_one = $_POST['one'];
$data_two = $_POST['two'];

if (empty( $_POST['one'] )) { // i only need check `$data_one` in this example
    exit('some field are empty');
} else {
    echo('field are filled');
    // continue other function
}

Above code keep return field are filled message, whether i fill the input field or not.

Thanks so much.

Upvotes: 0

Views: 102

Answers (4)

Hoopriver
Hoopriver

Reputation: 56

$allFilled = true;
foreach($_POST['one'] as $key=>$value){
    if(empty($value)){
        $allFilled = false;
        exit('some fields are empty');
    }
}
if($allFilled){
    exit('all fields are filled');
}

Upvotes: 3

Ijas Ahamed N
Ijas Ahamed N

Reputation: 6110

Try this

foreach($_POST['one'] as $key=>$value){
    if(empty($value)){
        exit('some field are empty');
    }
}

echo "All fields are filled";

Upvotes: 0

Thamilhan
Thamilhan

Reputation: 13313

Making use of array_filter and count functions

<?php
$data_one = $_POST['one'];
$data_one_filter = array_filter($_POST['one']); //Remove indexes of null or 0 - certainly name and email can't be 0
$data_one_count = count($_POST['one']); //count actual number of POST variables

$data_two = $_POST['two'];

if (count($data_one_filter) === $data_one_count) { 
    exit('fields are filled');
} else {
    echo('some fields are empty');
    // continue other function
}

Upvotes: 2

Al Amin Chayan
Al Amin Chayan

Reputation: 2500

You are sending data as array. So you seed to check this data as array like this:

$data_one = $_POST['one']['name'];
$data_two = $_POST['two']['message'];

if (empty( $_POST['one']['name'] )) { // i only need check `$data_one` in this example
    exit('some field are empty');
} else {
    echo('field are filled');
    // continue other function
}

Upvotes: 0

Related Questions