2013-10-28 2 views
0

사용자가 onclick 이벤트를 발생시켜 앵커 태그를 클릭 할 때마다 $_SESSION['state']을 업데이트하려고합니다. 변수 $state_names_array은 특정 국가의 모든 이름으로 사용됩니다. 그러나 문제는 내가 클릭 한 앵커 태그와 상관없이 $_SESSION['state']은 항상 $ state_names_array의 마지막 요소에 의해 업데이트되고 있다는 것입니다.PHP에서 onclick을 사용하여 세션 변수 업데이트하기

<?php 
foreach($state_names_array as $value){ 
    $temp = '<?php $_SESSION["state"]=$value;?>'; 
    ?> 
    <a href="index.php" onclick="document.write('<?php $_SESSION['state'] = $value ?>')"><?php echo $value ?></a><br> 
    <?php 
} 
?> 
+0

당신 캔트이 같은 방법으로 할. f.e.를 사용하십시오. 아약스, 코드가 completly 잘못되었습니다 ... – Legionar

+0

@Legionar u는 어떤 대안을 제안 할 수 있습니까? –

+0

문제는 $ _SESSION [ 'state']이 항상 업데이트된다는 것입니다. PHP는 서버 측에서 처리되기 때문에 아무데도 클릭 할 필요가 없지만 JavaScript는 클라이언트 측에서 처리됩니다 ... 해결책은 완전히 새로운 코드를 작성하는 것입니다. . – Legionar

답변

0
나는 전체 코드를 코딩하지 않습니다

, 나는 당신에게 예를 보여 불과합니다 , 그것을 수행하는 방법 : 여기

당신이 보내드립니다 :

<?php 
    foreach ($state_names_array as $value) { 
     echo '<a href="index.php" onclick="change_value('.$value.');">'.$value.'</a><br>'; 
    } 
?> 

은 그럼 당신은 자바 스크립트 함수 change_value이있을 것이다 당신이 처리 할 것입니다 일부 PHP 파일을 아약스 전화,

또한 말하지 않았어, 당신은 말했지, 당신은 닻을 클릭 한 후, 당신은 b 귀하의 사이트를 새로 고침 후 새로운 $_SESSION["state"]에 액세스 할 수있는 전자 ...

또한 어쩌면 단지 앵커를 클릭 한 후 index.php로 리디렉션하고 충분할 것입니다. _GET 매개 변수, FE :

<?php 
    foreach ($state_names_array as $value) { 
     echo '<a href="index.php?new_value='.$value.'">'.$value.'</a><br>'; 
    } 
?> 

이 줄을 파일의 index.php 당신에게 추가

if (isset($_GET['new_value'])) { 
    $_SESSION["state"] = $_GET['new_value']; 
} 
관련 문제