2012-11-08 4 views
0

안녕하세요. href를 클릭 한 후 선택 태그에서 $_POST['id'] 값을 잃어 버리는 문제가 있습니다. 그럼 코드는 여기에 있습니다 :제출 후 링크를 ​​클릭하면 선택 값이 손실됩니다.

$page = 1; 
if (isset($_POST['id'])){ 
    $id = $_POST['id']; 
} 

echo $id[0]; 
?> 

<ul> 
    <li><a href="?show=all">Show All</a></li> 
    <li><a href="?show=submitted">Show Submitted</a></li> 
    <li><a href="?show=pending">Show Pending</a></li> 
    <li><a href="?show=not">Show Not Submitted</a></li> 
</ul> 

<form action="" method="post"> 
    <select name="id"> 
     <option value="1">one</option> 
     <option value="2">two</option> 
     <option value="3">three</option> 
     <option value="4">four</option> 
     <option value="5">five</option> 
     <option value="6">six</option> 
     <option value="7">seven</option> 
     <option value="8">eight</option> 
    </select> 
    <input type="submit" name="mode" value="Select" /> 
</form> 

아이디어는 내가 선택한 필드에서 일부 값을 선택한 경우 후 나는 변수에 그 값을 유지해야하고 또한 내가 <a href=""> 후 작동 더 필터링 SQL 쿼리에 필요한 것입니다. 양식 제출 후 순간에 선택 값을 얻지 만 추가 필터링 후 <a href=""> 링크 중 하나를 누르십시오 $_POST 값이 사라집니다 ... 링크를 누른 후에 어떻게 그 값을 유지할 수 있습니까?

+0

을 ... 데이터를 게시하지 GET 사용하는 생각 당신은 GET의 PARAM 아이디 – Svetoslav

+0

가 클릭 민병대 모든 다음 링크를 설정할 수 있습니다 링크가 GET 요청을 발생시킵니다. 클릭을 포착하기 위해 양식이나 자바 스크립트를 사용하지 않고 POST를 얻을 수는 없습니다. –

답변

0

링크 클릭은 항상 GET 요청을 생성하며 기본적으로 양식을 제출하지 않습니다. 물론, 당신이이 경우에 $_GET에서 응시해야합니다,

<li><a href="?show=all<?=isset($id) ? '&id=' . $id : '' ?>">Show All</a></li> 
    <li><a href="?show=submitted<?=isset($id) ? '&id=' . $id : '' ?>">Show Submitted</a></li> 
    <li><a href="?show=pending<?=isset($id) ? '&id=' . $id : '' ?>">Show Pending</a></li> 
    <li><a href="?show=not<?=isset($id) ? '&id=' . $id : '' ?>">Show Not Submitted</a></li> 

을 그리고 : 그래서 당신은 쿼리 매개 변수로 전달해야합니다. 하지만 $_GET 모두 $_POST에서 그것을 얻을 수 있습니다 당신은 여기 $_REQUEST을 사용할 수 있습니다 :

if (isset($_REQUEST['id'])){ 
    $id = $_REQUEST['id']; 
} 
+0

ohh 고마워. .. 나는 이미 다른 기술에 $ _GET 기술을 사용했지만 궁금해했다.하지만 여기서는 그것을 사용하는 방법을 생각하지 않았다. 내 머리가 근무를 끝내지 못하고있다. 고마워요. 그것은 작동합니다! :) – Sangsom

1

어딘가에 저장하십시오. 당신은 예를 들어,이 옵션을

에 (다른 대답에 나와있는) 모든 URL에 쿼리 PARAM
  • 스토어 그것을 cookie
  • 저장 위치에 같은

    그리고 더 오랜 기간 동안 보관해야하는 경우

    • 에 보관하십시오

    쿼리 매개 변수는 한 번만 입력하면됩니다. 몇 번의 클릭/페이지 흐름의 경우 더 오래 지속되는 것이 적절할 것입니다.

  • +0

    쿠키와 세션에는 동의하지만 DB에는 동의합니까? OP가 링크를 사용하여 전달하는 방법과 ID를 모르는 경우? –

    +0

    그래,이 시점에서 권장하지 않겠지 만 ... 실제로 저장해야하는 경우 가야 할 길이므로 어쨌든 언급해야합니다. – eis

    관련 문제