2017-03-08 10 views
0

감사,PHP 세션 데이터 내가 lmsdropdown.php 및 clubdropdown을 만들기 위해 두 번이 코드를 사용하고 연결된 드롭 다운 메뉴를 만들어보고 온라인으로 볼 튜토리얼/코드</p> <p>된 고급의

새로 고침 .php. lmsdropdown 양식의 값을 세션에 저장할 수 있으며 clubdropdown에 반영합니다 (값이 존재하는지 확인하기 위해).

lmsdropdown은 members.php 내에 PHP가 포함되어 있으며 clubdropdown은 members2.php에 포함되어 있습니다.

clubdropdown에서 값을 선택하면 페이지가 새로 고침되어 두 번째 드롭 다운 상자가 채워 지므로 세션 데이터가 지워집니다.

저는 PHP/Javascript를 처음 사용하므로 답변이 매우 분명 할 수 있지만 지금은 며칠 동안 저를 곤란하게했습니다. 어떤 도움이라도 대단히 감사 할 것입니다.

다음은 lmsdropdown의 출력과 세션에 저장된 출력을 취한 두 개의 스 니펫 members2.php의 병합입니다. clubdropdown 또한 자바 코드와 에코 세션 문

제대로 세션 데이터는 그러나 자바 스크립트 만들 때 드롭 다운 2.

members.php session data 
 

 
<?php 
 
    session_start(); 
 
    $_SESSION['lms'] = $_POST['lms']; 
 
    $_SESSION['week'] = $_POST['week']; 
 

 
    if (!isset($_SESSION['usr_lvl']) or ($_SESSION['usr_lvl'] != 0)) { 
 
     header("Location: login.php"); 
 
     exit(); 
 
    } 
 

 
?> 
 

 
clubdropdown output of session data 
 

 
<SCRIPT language=JavaScript> 
 
    function reload(form) { 
 
     var val = form.lge.options[form.lge.options.selectedIndex].value; 
 
     self.location = 'members-page2.php?lge=' + val; 
 
    } 
 
</script> 
 
</head> 
 
<body> 
 
    <?php 
 
     $usr = $_SESSION['usr_id']; 
 
     @$lge=$_GET['lge']; // Use this line or below line if register_global is off 
 
     if(strlen($lge) > 0 and !is_numeric($lge)){ // to check if $lge is numeric data or not. 
 
      echo "Data Error"; 
 
      exit; 
 
     } 
 
     $usr = $_SESSION['usr_id']; 
 
     $lms=$_SESSION['lms']; 
 
     $week=$_SESSION['week']; 
 
     echo "<br>Value of \$week = $week<br>Value of \$lms = $lms <br>Value of \$usr = $usr";

이를 제거하는 것 반향 나는 수 있어요를 보여줍니다 아래 이미지는 members2.php에 포함 된 clubdropdown에 출력 된 세션 변수를 보여줍니다. clubdropdown with variables shown

이 이미지는 첫 번째 드롭 다운에서 선택 한 후 오류를 보여줍니다.

여기에서 비슷한 질문에 대한 답변 중 일부는 게시물 데이터가 새로 고침시 덮어 쓰기/삭제되기 때문에 오류라고 생각되지만 세션이 무엇인지 생각했습니다.

모든 입력을 크게받습니다.

+1

* java ** 스크립트 ** 새로 고침 – evolutionxbox

+0

드롭 다운에 대한 자습서는 여기에서 볼 수 있습니다. 첫 번째 옵션 인 drop_down.zip을 사용했습니다. http://www.plus2net.com/php_tutorial/php_drop_down-download.php?download_style=1 – Don

+0

안녕하세요. 안녕하세요. http://stackoverflow.com/questions/ 도움을 받으실 수 있습니다. 30396944/session-variable-reset-on-refresh. –

답변

0

두 번째로 페이지를 실행하면 $_POST의 값이 표시됩니다. $_POST 값이없는 경우 건너 뛸 수 있도록 If(isset($_POST['lms'])){ $_SESSION['lms'] = $_POST['lms']; }을 추가해야합니다.

현재 귀하의 $_SESSION 변수는 그대로 있지만 비어있는 $_POST 값으로 대체되고 있습니다.

AJAX 호출을 사용하여 드롭 다운 목록을 채우는 것이 더 나을 것 같습니다.

+0

그건 놀라운 스튜어트, 매우 대접 작품 대접! – Don

+0

도와 드리겠습니다. 귀하의 코딩과 함께 행운을 빌어 요. – Stuart