if (! empty ($ _ POST)) не работает

У меня есть php-форма (код для последующего) с кнопкой отправки, которая запускает JSON-events.php качестве своего action ( method = POST ). В коде JSON-events я проверяю, была ли форма отправлена ​​с использованием if (!empty($_POST)) . Моя проблема в том, что код JSON-событий, похоже, не распознает $_POST .

Здесь находится секция бокового кода формы.

 <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> 

и вот верхняя часть JSON …

 if (!empty($_POST)) { 

любая помощь очень ценится

empty() будет работать, если $_POST не имеет никаких значений ( пустой массив ), но в вашем случае, когда вы отправляете без каких-либо значений, вы получаете массив, как показано ниже, и он не пуст:

     массив
     (
         [searchlat] => 
         [searchlong] => 
         [поиск] => Отправить запрос
     ) 

empty() вернет true, только если $_POST вернется

 Array ( ) 

Но это не произойдет, так как каждая форма будет иметь одну кнопку Sumbit .

Просто используйте

 if($_POST) { //php code } 

Это решит вашу проблему.

Узнайте больше о empty (), посетив http://php.net/manual/en/function.empty.php

Не используй

 if (!empty($_POST)) { 

чтобы проверить, есть ли сделанная запись, используйте это:

 if( $_SERVER['REQUEST_METHOD'] == 'POST') { 

Условия, которые вы можете использовать с $ _POST

 if(count($_POST)>0){ //... } if(isset($_POST['field_name'])){ //... } if( $_SERVER['REQUEST_METHOD'] == 'POST') { //.. } 

Попробуй это

  if(!empty($_POST['search']) && isset($_POST['search'])) 

гораздо лучше проверить фактическое значение в массиве $ _POST. Например.

 if (!empty($_POST['search'])) 

Использование empty () не будет выполнено, если будет отправлено значение 0 Так что лучше использовать
isset($_POST['FIELD_NAME'])