Не работают isset на кнопки внутри вызываемой функции php
Извиняюсь, что задаю этот вопрос уже 2й раз, но мне очень нужна помощь с этим фрагментом кода. Я должен вызывать функцию, задавая параметры для действия кнопок, где будет рекурсия но уже с другими параметрами. Но if(isset) просто вызывается сам без нажатия на кнопку. Пожалуйста, подскажите в чем проблема. Не кидайтесь палками, я новичек. Если менять isset на !empty - то нажатие не работает вовсе
<?php
require "php/include_db.php";
//$submit_1 = $_POST['location_button_1'];
//$submit_2 = $_POST['location_button_2'];
//$submit_3 = $_POST['location_button_3'];
//$submit_4 = $_POST['location_button_4'];
$array_buttons = array($_POST['location_button_1'], $_POST['location_button_2'], $_POST['location_button_3'], $_POST['location_button_4']);
$src = null;
$locationInfo = R::load('locationsdb', 1);
$src = $locationInfo->location_image;
echo $src;
setButton($locationInfo->location_travel);
function setButton($locationInfo_travel){
$arr_travels = explode(' ', $locationInfo_travel);
for($i=0; $i<count($arr_travels); $i++){ // Просто вывод возможностей хода
echo ", ", $arr_travels[$i];
}//--------------------
echo '<pre>'.print_r($_POST, true).'</pre>';
if(!empty ($_POST['location_button_1'])){
$locationInfo = R::load('locationsdb', $arr_travels[0]);
$src = $locationInfo->location_image;
echo $src;
setButton($locationInfo->location_travel);
}if(!empty ($_POST['location_button_2'])){
$locationInfo = R::load('locationsdb', $arr_travels[1]);
$src = $locationInfo->location_image;
echo $src;
setButton($locationInfo->location_travel);
}if(!empty ($_POST['location_button_3'])){
$locationInfo = R::load('locationsdb', $arr_travels[2]);
$src = $locationInfo->location_image;
echo $src;
}if(!empty ($_POST['location_button_4'])){
$locationInfo = R::load('locationsdb', $arr_travels[3]);
$src = $locationInfo->location_image;
echo $src;
}
}
?>
Форма:
<div class="location_buttons_container">
<div class="buttons_container">
<form method="post" action="Game.php">
<ul class="buttons_menu">
<li>Локации</li>
<li ><span ><button id="location_button_1" name="location_button_1" value="selected">Главные ворота</button></span><em>3 сек.</em></li>
<li><span><button name="location_button_2" value="selected">Торговый квартал</button></span><em>2 сек</em></li>
<li><span><button name="location_button_3" value="selected">Замок</button></span><em>5 сек</em></li>
<li><span><button name="location_button_4" value="selected">Гильдия</button></span><em>4 сек</em></li>
</ul>
</form>
</div>
</div>
Ответы (1 шт):
Автор решения: Yaroslav Molchan
→ Ссылка
isset будет работать всегда, потому что приходит пустая строка, даже когда value нет, а вот в вашем случае нужно сделать следующее:
- Заменить
issetна!empty. - Добавить ко всем
<button name="location_button_*">ещё значениеvalue="selected"и тогда будет работать!emptyкак вам нужно.