У меня есть 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'])