2013-06-24 11 views
0

사용자가 로그인 할 때 그가 2013-2014 또는 2014-2015와 같은 연도를 지정하는 웹 사이트를 만들었습니다. 이제 올해의이 값을 다음과 같이 저장하고 있습니다. 내가 사이트를 통해 사용하고있는 세션 변수. 이제 사용자가 연도를 변경하려면 로그 아웃 한 후 다른 연도로 로그인해야합니다. 홈 페이지에 데이터베이스에서 모든 연도를 보여주는 드롭 다운 메뉴를 만들었습니다. 로그 아웃하지 않고 홈 페이지에서 1 년을 선택하여 세션 변수의 값을 변경하고 싶습니다.세션 변수의 값을 변경하십시오.

$query = "SELECT * FROM year"; 
$result = mysql_query($query); 
echo "<select class='innerinputstyle' id='year' name='year'><option value='$year'>$year</option>"; 
while($note=mysql_fetch_array($result)){ 
echo "<option value=$note[year]>$note[year]</option>"; 
} 
echo "</select>"; 

사람이 얼마나 홈 페이지에서 $year의 값을 변경하는 말해 주시겠습니까 :

여기
session_start(); 
if(!isset($_SESSION["myusername"])){ 
    header("location:login.php"); 
} 

$year = $_SESSION["year"]; 

드롭 다운 메뉴 코드 : 여기

코드인가?

+0

을 선택하여 onselect 이벤트에 대한 ajax 호출을 추가 할 수 있습니다. 그 ajax 호출은 단순히 $ _SESSION [ 'year']을 전달 된 값으로 변경하는 PHP 파일을 트리거 할 수 있습니다. – Fallen

+0

어떻게 할 수 있습니까? 내 말은 버튼을 넣은 다음 다른 PHP 파일에 값을 입력한다고 가정 해 봅시다. 하지만 어떻게 세션 변수를 변경합니까? 당신에게 예제 코드 나 참조를 줄 수 있습니까? – ashah142

답변

0

변경

echo "<select class='innerinputstyle' id='year' name='year'>" 

echo "<select class='innerinputstyle' id='year' name='year' onChange='doIt()'>" 

여기 쉽게 변경할 수 있습니다 change_year.php에 AJAX 기능

function doIt(){ 
    var xmlhttp=new XMLHttpRequest(); 
    xmlhttp.onreadystatechange=function(){ 
    } 
    var new_year = document.getElementById('year').value; 
    xmlhttp.open("GET","change_year.php?year="+new_year,true); 
    xmlhttp.send() 
    return false; 
} 

입니다

$_SESSION['year']=$_GET['year']; 
,

경고 : 테스트되지 않은 코드. 아이디어를 스케치하는 데 사용됩니다.

+0

안녕하세요, 저는 양식을 제출하여 이것을 시도했습니다. 하지만 다시 홈페이지로 리디렉션 할 때 값은 동일하게 유지됩니다. – ashah142

+0

홈페이지에 $ _SESSION [ 'year'] 값을 설정 하시겠습니까? 아약스 기술을 사용하는 경우 양식을 제출할 필요가 없습니다. 옵션을 선택하면 doIt() 함수가 트리거됩니다. – Fallen

+0

나는 아약스로 그것을 시도했다. 하지만이 줄에 나에게 오류가 발생했습니다. 'xmlhttp.open ("GET", "change_year.php? year"=, true); ' – ashah142

0

나는 이것을 달성하기위한 선택의 여지가 많으며, AJAX는 그 중 하나라고 생각하지만, 모든 것은 사용자 인터페이스를 구현하는 방법에 달려있다. 당신은 드롭 다운에 약간의 양식을 만들 생각 해 제출할 수 있습니다, 당신은이 솔루션은 동일한 항상 AJAX의 예를 들어 제출 버튼을 통해 또는 자바 스크립트를 통해 등이있다 수행 할 수 있습니다에서

$_SESSION['year']=$_GET['year']; 

끝은 모두 사용자 인터페이스에 의존하고, 페이지를 새로 고치지 않고 AJAX를 사용하거나 페이지를 새로 고치지 않고 AJAX를 사용하려는 경우에는

+0

안녕하세요, 저는 양식을 제출하여 이것을 시도했습니다. 하지만 다시 홈페이지로 리디렉션 할 때 값은 동일하게 유지됩니다. – ashah142

+0

양식을 어디에 게시하고 있습니까? 어느 페이지? 나는 당신이 tie himepage 자체에 게시하고있는 것 같아요. 다음과 같은 것이 있어야합니다 : himepage – Delio

+0

session_start(); if (! isset ($ _ SESSION [ "myusername"])) {header ("location : login.php"); } $ _SESSION [ 'year'] = $ _ GET [ '년']; $ year = $ _SESSION [ "year"]; – Delio

관련 문제