Флажок Значение PHP для HTML - PullRequest
0 голосов
/ 05 января 2011

У меня есть функция, которая устанавливает и отменяет переменную $ _SESSION в зависимости от того, что было отправлено из формы на моей главной странице.

функция if:

$_SESSION['search'] = true;
if($_POST['searchtv']){
    $_SESSION['searchtv'] = true;
} else {
    unset($_SESSION['searchtv']);
}
if($_POST['searchmovie']){
    $_SESSION['searchmovie'] = true;
} else {
    unset($_SESSION['searchmovie']);
}

searchtv иПеременные searchmovie $ _POST устанавливаются с помощью следующих флажков:

<input type="checkbox" name="searchmovie" value="movie" <? echo isset($_SESSION['searchmovie']) ? 'checked' : ''; ?>"/>

Однако проверенное значение всегда кажется ложным и отображает '', поэтому для установленного флажка не установлен флажок "флажок".

Я знаю, что переменная $ _SESSION установлена ​​правильно, однако, потому что в том же файле у меня есть другой оператор IF (ниже), который работает на 100%.

if(isset($_SESSION['searchtv'])){
    $database->searchTV($_GET['show'], $session->uid);
}
                                if(isset($_SESSION['searchmovie'])){
    $database->searchMovies($_GET['show'], $session->uid);
}
                                if(!isset($_SESSION['searchtv']) && !isset($_SESSION['searchmovie'])){
    $database->searchTV($_GET['show'], $session->uid);
    $database->searchMovies($_GET['show'], $session->uid);
}

Если я отмечаю только searchtvфлажок запускает только функцию searchTV и т. д., поэтому я знаю, что она установлена ​​и работает ... просто не могу получить обратную связь с флажком, чтобы сказать, да, она была отмечена, когда была нажата кнопка поиска.

Ответы [ 2 ]

3 голосов
/ 05 января 2011

@ medoix: попробуйте изменить это

<input type="checkbox" name="searchmovie" value="movie" <? echo isset($_SESSION['searchmovie']) ? 'checked' : ''; ?>"/>

к этому

<input type="checkbox" name="searchmovie" value="movie" <?php if (isset($_SESSION['searchmovie'])) { echo 'checked="checked" '; } ?>/>
0 голосов
/ 05 января 2011

Вы понимаете, что часть кода, которая проверяет $_SESSION['searchtv'] && $_SESSION['searchmovie'] в нижней части, оба! Isset. Он будет работать, только если оба не проверены, а не если они есть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...