2011-09-12 6 views
0

사용자가 HTML SELECT 드롭 다운에서 항목을 선택한 다음 페이지에서 멀리 이동하기 전에 $ _SESSION 변수에 저장하도록하는 방법이 있습니까? 확실한 방법은 같은 페이지로 돌아가서 변수가 설정되어 있는지 확인하는 FORM을 얻는 것이지만 다른 누군가가 주요 재 작성없이 수행 한 작업을 수정하려고하는 것입니다.

e.e. 페이지를 다시로드하지 않고 사용자의 SELECT 옵션에 따라 값이 변경되는 세션 변수를 설정할 수 있습니까?

모두 감사합니다.

답변

1

이렇게하려면 AJAX를 사용해야합니다.

1

페이지를 다시로드하지 않고 $ _SESSION 변수를 수정할 수있는 유일한 방법은 비동기 요청 (예 : AJAX)을하는 것입니다.

기술적으로 클라이언트 측에서 세션 변수를 수정할 수 없습니다. 즉, 페이지를 다시로드하거나, 다른 페이지에 게시하거나, Ajax를 사용하여 범위를 벗어난 요청을하는 등의 방법으로 서버에 요청해야합니다.

1

당신은 HTML에서 스크립트에 AJAX 요청을해야합니다, 당신은 당신이 jQuery *

$(document).ready(function() 
{ 
    $("#dropdown").change(function() 
    { 

     var link = 'updateSession.php?value_to_update='.$(this).val(); 

     $.ajax({ 
     url: link, 
     type: "GET", 
     dataType: "html", 

     success: function(html) 
     { 
       $('#message').html(html); 
     } 
    }); 
    }); 
}); 

* 다른 자바 스크립트 라이브러리는 HTML 파일에

0

수 있습니다 사용할 수있는이 JQuery와/자바 스크립트 코드 :

$(document).ready(function() { 
     $("#my_select").change(function() { 
      // alert($(this).val()); 
      url = "MyPage.php"; 
      var myData = {}; 
      myData['my_select'] = $(this).val(); 
      jQuery.get(url, myData, function(data) 
      { 
       // console.log(data); 
       // the placeholder where you wanted to show it 
       $("#my_session_select_value").html(data); 
      }); 
     }); 
    }); 

과 PHP 파일에 (세션 값을 저장)이 코드를 가지고 :

session_start(); 
    $_SESSION['my_select'] = $_GET['my_select']; 
    // if you wanted a json encoded result 
    // echo json_encode($_SESSION); 
    // if you wanted a direct value 
    echo $_SESSION['my_select']; 
관련 문제