2011-07-28 2 views
0

페이지 간 값 전달. 내가 뭘 잘못하고 있죠?

2 페이지, 하나는 details.page, 다른 하나는 maps.page

첫 번째 페이지에는 다음과 같은 검색 입력이 선언되어 있습니다.

 <form method="get" id="form-search" data-ajax="true" action="maps.page"> 
      <input type="search" name="search" id="search" value=""/> 
     </form> 

그리고 두 번째 페이지에서, maps.page, 나는 이렇게 선언했다 :

 <form action="maps.page"> 
     <input type="search" name="search" id="search-field" value=""/> 
     </form> 

이제 첫 번째 페이지에서 검색 막대에 무언가를 입력하고 Enter 키를 누르면 maps.page에 검색 막대가 채워질 것이라고 가정했다. 이전에 입력 한 값으로

제대로 리디렉션되었지만 검색 표시 줄이 비어 있습니다.

내가 뭘 잘못 했니?

미리 도움을 주셔서 감사합니다.

EDIT : URL에서 다음과 같이 검색 한 내용을 볼 수 있기 때문에 URL에서 작동하는 것 같습니다. /maps.page?search=something

+0

클라이언트 측 및 서버 측 스크립팅을 읽어야한다고 생각합니다. – Jack

답변

1

백엔드 스크립트를 사용하지 않고이 작업을 수행하는 방법에는 몇 가지 옵션이 있습니다.

1) 양식 메서드를 GET으로 설정하여 변수가 주소 표시 줄에 전달되도록 한 다음 아래의 스크립트를 사용하여 다른 쪽에서 가져옵니다 (실제로 주소를 읽은 다음이를 구문 분석합니다. 변수). 그런 다음, 그 값을 입력 필드에 넣을 수 있습니다.

var getVars = new Array(); 
var locvartemp = (window.location.href.indexOf("?") + 1) ? window.location.href.substr(window.location.href.indexOf("?") + 1) : ""; 
locvartemp = locvartemp.split("&"); 
for(var x = 0; x < locvartemp.length; x++) { 
    var lvTempVar = locvartemp[x].split("="); 
    getVars[ unescape(lvTempVar[0]) ] = unescape(lvTempVar[1]); 
} 

2) 당신은 전에 양식을 제출에 쿠키와 같은 값을 설정 한 다음 다른 쪽을 읽고 입력 필드로 설정하기 위해 jQuery를 쿠키 플러그인을 사용할 수 있습니다.

jQuery.cookie("myCookie", document.formName.myFieldName.value); 

자세한 내용이 필요하면 알려주세요.

+0

바로 그게 내가 찾고 있던거야. 고맙습니다. – JFFF

+0

:) 기꺼이 도와주세요. – Maxx

1

이 값은 /maps.page?search=something :

편집는 : 나는이 같은 URL에서 검색 무엇을 볼 수 있기 때문에, 나는 그것이 작동하는 것 같군 URL에 참조 자동으로 채워지지 않습니다. 서버 측에서 인쇄해야합니다.

<form action="maps.page"> 
     <input type="search" name="search" id="search-field" value="<insert value>"/> 
    </form> 
+0

글쎄, 문제는, 내가 URL에서 볼 수있는 값을 텍스트 상자에 전달하고 싶다. – JFFF

+1

세션을 사용하여 값을 저장 한 후 다음 페이지에서 세션을 사용하여 값을 읽고 검색 상자의 값 속성을 설정하십시오. 자동으로 채울 수 없습니다. – Ehtesham

+0

데이터를 유지하려는 경우가 아니면 세션을 사용하지 마십시오. 그런 식으로 경쟁 조건이 쌓여 있습니다. 값은 이미 두 번째 페이지에 대한 쿼리 문자열에 있으며, 거기에서 직접 읽습니다. – Quentin

1

내가 첫 페이지에서 검색 창에 뭔가를 입력하고 Enter 키를 누르 때, maps.page에 검색 창 이전에 입력 한 값으로 채워 것이라고 가정했다.

이것이 잘못된 것입니다.

값 속성을 설정하거나 요소가 DOM에 추가 된 후 DOM 값 속성을 설정하는 경우에만 필드가 채워집니다.

이것은 일반적으로 서버 측 프로세스를 사용하여 수행됩니다. 세부 사항은 해당 프로세스를 만드는 데 사용하는 언어에 따라 다르지만, 필터링되지 않고 이스케이프 처리되지 않은 사용자 입력이 보안 구멍을 생성하므로 XSS에주의하십시오.

관련 문제