2012-11-15 5 views
0

누구든지 도움을받을 수 있다면 크게 감사하겠습니다!자바 스크립트 액션으로 변수 전달

나는

그럼 내가 고른 상태를 결정하는 자바 스크립트 기능을 가지고있다. 당신이있어 상태에 대한 드롭 다운과 함께, HTML 양식을 가지고 있고, 그에 따라 사용자를 리디렉션. 나는이 방법을 사용할 수 있습니다 (그래서, 어떻게하는 경우) 사용자가 리디렉션 될 때, 그래서, 다음 폼에 상태를 전달하려면 드롭 다운 말한다 그들은 국가 포착 :

function pickstate() 
{ 
     if(document.drop_list.State.value == "AR"){ 
      document.drop_list.action = "www.theurl.com"; 
      document.drop_list.submit(); 
     } 
} 

내 질문입니다.

PHP와 POST를 사용하여이 작업을 수행하는 방법을 알고 있지만이 작업은 게시되지 않으며 올바른 상태로의 리디렉션이며 상태가 20 가지 이상이므로 동일한 양식을 사용하지 않기 때문에 사용자가 자신의 상태를 다시 선택하게하려는 경우

이 방법을 사용하는 이유는 모든 사람이 리디렉션되지는 않기 때문입니다. 많은 상태가 처음 표시되는 양식에 남습니다. 따라서 POST를 사용할 수 없습니다.

도움말! 고맙습니다.

+3

를 사용하여 상태를 선택할 수있는 URL

function pickstate() { var stateVal = document.drop_list.State.value; switch(stateVal) { case "AR" document.drop_list.action = "www.theurl.com/#"+stateVal; break; case "IT" document.drop_list.action = "www.theurl.com/#"+stateVal; break; } document.drop_list.submit(); } 

에 해시를 추가 할 수 있습니다 두 번째 페이지의 쿼리 문자열에서 매개 변수를 가져 오는 것이 아니라? –

+2

(리디렉션되지 않은 *는 동일한 페이지에서 변수를 검색 할 수 있습니다.) –

+0

양식은 게시해야합니다 (json에서). 그러나이 리디렉션은 제출 전에 있습니다. – user1789437

답변

0

로컬 저장 장치에 값을 저장할 수 있습니다.

function pickState() { 
    if (document.drop_list.State.value == "AR") { 
     document.drop_list.action = "www.theurl.com"; 
     localStorage.setItem('selectedState', 'AR'); 
     document.drop_list.submit(); 
    } 
} 

그런 다음 값을 설정하는 다른 함수를 추가하십시오.

function setState() { 
    var storedSelectedState = localStorage.getItem('selectedState'); 

    if (storedSelectedState) { 
     document.drop_list.State.value = storedSelectedState; 
    } 
} 
+0

약간의 잔인한 부분이 아닌가요, 양식간에 값을 전달하는 것만 큼입니까? –

+0

잔인한가요? 아마. 비싼? 전혀. –

+1

물론, IE <8;을 가지고 있지 않은 사용자에게 내기) –

1

이것은 GET 양식, 왜 이내 인 경우 당신은 그런 다음 양식을 전달 해시

window.location.hash; // eg. will be equal to #AR or #IT