2011-01-05 4 views
0

내 메인 페이지의 양식에서 제출 된 내용에 따라 $ _SESSION 변수를 설정 및 설정 해제하는 기능이 있습니다.PHP 값 for HTML 확인란

기능 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과 $ _POST 변수는 아래의 체크 박스를 통해 설정을 searchmovie : 체크 값이 항상 false 것으로 보인다 및 디스플레이 ''너무 그러나

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

상자에 눈금이 표시되도록 "확인 됨"이 설정되지 않습니다.

$ _SESSION 변수가 올바르게 설정되어 있지만 같은 파일에 100 % 작동하는 또 다른 IF 문 (아래)이 있기 때문에 나는 알고 있습니다. 난 단지 searchtv의 확인란을 선택하면

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 기능을 실행 등등 .. 그래서 난이 설정되는 알고 및 작동 검색 버튼이 선택되었을 때

답변

3

@medoix : 기본적으로 두 개의 상자가 체크되지 않기 때문에 좋은 지점입니다이

<input type="checkbox" name="searchmovie" value="movie" <?php if (isset($_SESSION['searchmovie'])) { echo 'checked="checked" '; } ?>/> 
+0

네,'checked = 'checked'' 또는'checked =' ''가 필요합니다. 지금 당장 당신은 단지'체크 '를 울리고 있습니다. – Ben

+1

은 대우를받습니다! 정말 고맙습니다. 얼마나 작은 그런 일이 단지 나의 마음을 미끄러지게 할 수 있는지에 관해 놀라워하고있다! – medoix

0

하단의 $_SESSION['searchtv'] && $_SESSION['searchmovie']을 검사하는 코드 부분은 모두! isset입니다. 두 경우 모두 확인하지 않은 경우에만 실행됩니다.

+0

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

을 변경해보십시오, 나는 그것을 그런 식으로 설계했다. 그러나 당신이 두 상자를 선택한다면 당신이 이것을 가져올 때 선택의 여지가 생깁니다. 그러나 다시 두 가지를 모두 확인하면 각 기능은 상호 의존적으로 실행됩니다. – medoix

+0

조금 이상합니다. 정말 if/else if/else if/else 구조 여야합니다. 둘 다 설정되어 있으면 둘 다 설정하고, TV가 설정되어 있으면 TV를 실행하고, 영화가 설정되어 있으면 영화를 실행하십시오. 그렇지 않으면 "검색 방법을 선택하십시오". 그런 다음 두 방법 모두 기본값으로 선택해야합니다. 현재 방법에서 두 옵션을 모두 선택 취소 한 것과 똑같습니다. 물론 상자를 체크하지 않은 상태에서 설정을 해제하지 않고 false로 설정 한 다음,이를하기 위해 설정보다는 true 또는 false인지 확인해야합니다. – Phoenix