2013-02-13 1 views
0

PHP로 페이지 매김을하고 있고 다음 및 이전 페이지의 SUBMIT 버튼을 가지고 있으므로 사용자가 1 페이지에서 2 개의 값을 확인하면 세션 변수에 저장합니다 그가 방문 할 때 나는 in_array을 사용하고 값을 반복합니다. 하지만 사용자가 선택을 취소하면 배열의 값을 어떻게 해제합니까? 사용자가 확인란의 선택을 취소 한 경우 세션 배열의 값을 설정 해제 할 수 없습니다.

내 설명이 맑은하지만 여기에 비해 여전히 필요로하는 경우 코드가

if(!empty($_POST['rec_num'])) { 
     if(empty($_SESSION['checks_selected_for_records'])) { 
       //If session array is empty than directly add all record numbers in 
       //this session 
      $_SESSION['checks_selected_for_records'] = $_POST['rec_num']; 
     } 
     //If a new value is seen and is not in array than add it    
     foreach ($_POST['rec_num'] as $check_rec_num) { 
     if(!in_array($check_rec_num, $_SESSION['checks_selected_for_records'])) { 
      array_push($_SESSION['checks_selected_for_records'], $check_rec_num); 
     } 
    } 
} 

//Handle Redirects For Pagination 
if (isset($_POST['next_page']) || isset($_POST['last_page']) || isset($_POST['first_page']) || isset($_POST['previous_page'])) { 
     if(isset($_POST['next_page_link'])) { 
      redirect_to($_POST['next_page_link']); 
     } elseif (isset($_POST['last_page'])) { 
      redirect_to($_POST['last_page_link']); 
     } elseif (isset($_POST['first_page'])) { 
      redirect_to($_POST['first_page_link']); 
     } elseif (isset($_POST['previous_page'])) { 
      redirect_to($_POST['previous_page_link']); 
     } 
    } 
+0

PHP SESSION 변수를 설정 해제하는 방법 만 알고 싶거나 unsafe를 트리거하려면 javaskript가 필요하십니까? et? – Dukeatcoding

+0

세션 변수를 설정하지 않은 상태에서 var를 쉽게 해제 할 수 있습니다. 선택을 취소하면 rec 번호를 설정하지 않고 순수한 PHP 솔루션을 원합니다. –

+0

지금 선택 취소하면 배열의 값을 걷어 내고 싶습니다. – Dukeatcoding

답변

1

당신은

if(($key = array_search($del_val, $_SESSION['checks_selected_for_records'])) !== false) { 
    unset($_SESSION['checks_selected_for_records'][$key]); 
} 
+0

알지만 어떻게해야합니까? 확인되지 않은 값이 있습니까? –

+0

시나리오는 사용자가 변경된 체크 박스가 포함 된 from을 두 번째로 보냅니다. 그런 다음 전체 배열을 삭제하고 새 배열을 만듭니다. – Dukeatcoding

+0

2 페이지에서 일부 값을 선택하면 전체 배열을 놓을 수 없습니다. 전체 문제 일 수 있습니다. –

0

뭔가 등에 array_search 사용하여 배열에서 값을 제거하는 것 같아요 :

<form action="" method="POST"> 
    <input type="checkbox" name="mycheckbox"> 
</form> 

<?php 
    $_SESSION['mycheckbox'] = isset($_POST['mycheckbox']); 
// OR 
    if(! isset($_POST['mycheckbox'])) { 
    unset($_SESSION['mycheckbox']); 
    } else { 
    $_SESSION['mycheckbox'] = $_POST['mycheckbox']; 
    } 
+0

여러 개의 체크 박스가 있고 전체 세션이 아닌 배열 값을 설정 해제하고 싶습니다. –

관련 문제