if (!empty($_POST)) not working
Solution 1
empty()
will work if $_POST
does not have any values (Empty array), but in your case when you submit without any values still you get an array like below and it's not empty:
Array ( [searchlat] => [searchlong] => [search] => Submit Query )
empty()
will return true only if $_POST
returns
Array (
)
But it's not going to happen as every form will have one Sumbit button.
Just use
if($_POST) {
//php code
}
It will solve your problem.
Learn more about empty() by visiting http://php.net/manual/en/function.empty.php
Solution 2
Do not use
if (!empty($_POST)) {
to check if there is a post done use this:
if( $_SERVER['REQUEST_METHOD'] == 'POST') {
Solution 3
Conditions that you can use with $_POST
if(count($_POST)>0){
//...
}
if(isset($_POST['field_name'])){
//...
}
if( $_SERVER['REQUEST_METHOD'] == 'POST') {
//..
}
Mark Adams
Updated on July 27, 2020Comments
-
Mark Adams almost 4 years
I have a php form (code to follow) with a submit button that runs
JSON-events.php
as itsaction
(method = POST
). In the JSON-events code I am testing whether the form has been submitted usingif (!empty($_POST))
. My issue is that the JSON-events code doesnt seem to be recognising$_POST
.Heres the form side code section.
<div class="simple_overlay" id="searchform"> <form id="myform" class = "cols" action="json-events.php" method="post" > <h3>Search</h3> <p> <label>address/postcode *</label> <input type="address" id="searchaddress" /> </p> <p> <label for="amount">maximum distance:</label> <input type="text" id="amount" value="5 miles" style=" border:0; color:#43a8c4; font-weight:bold;" /> </p> <div id="slider-range-min" style="width:130px; margin-left:4px; margin-bottom:20px"></div> <p id="terms"> <label>Category 1</label> <input name="cat1" type="checkbox" value="1" checked="checked"/> </p> <p id="terms"> <label>Category 2</label> <input name="cat2" type="checkbox" value="1" checked="checked"/> </p> <p id="terms"> <label>Category 3</label> <input name="cat3" type="checkbox" value="1" checked="checked"/> </p> <p id="terms"> <label>Category 4</label> <input name="cat4" type="checkbox" value="1" checked="checked"/> </p> <p id="terms"> <label>Category 5</label> <input name="cat5" type="checkbox" value="1" checked="checked"/> </p> <p id="terms"> <label>Category 6</label> <input name="cat6" type="checkbox" value="1" checked="checked"/> </p> <p id="terms"> <label>Category 7</label> <input name="cat7" type="checkbox" value="1" checked="checked"/> </p> <p id="terms"> <label>Category 8</label> <input name="cat8" type="checkbox" value="1" checked="checked"/> </p> <p id="terms"> <label>Category 9</label> <input name="cat9" type="checkbox" value="1" checked="checked"/> </p> <p id="terms"> <label>Category 10</label> <input name="cat10" type="checkbox" value="1" checked="checked"/> </p> <p> <input type="hidden" name="searchlat" id="searchlat"/> </p> <p> <input type="hidden" name="searchlong" id="searchlong" /> </p> <input type="submit" name="search" id="search"/> <input type="button" value="Check Address" onclick="codeAddressSearch()"/> <button type="reset">Reset</button> </form> </div>
and here is the top part of the JSON...
if (!empty($_POST)) {
any help very much appreciated