2013-07-22 2 views
2

다음은 자바 스크립트 코드로 k와 m은 자바 스크립트 변수입니다. 내 HTML 양식이 POST 방법이있는 경우자바 스크립트를 통해 매개 변수가있는 양식을 제출하십시오.

function javascriptfunction() { 
    document.forms[formname].action="gotopage.php?parameter1="+k+"&parameter2="+m; 
    document.forms[formname].submit(); 
} 

위의 코드가 제대로 실행됩니다. 다음은 내 HTML 페이지입니다 :

<form name="formname" action=# method=POST> 
    <input type=text name="data1" value="one"> 
    <input type=text name="data1" value="two"> 
    <input type=button name="button1" value="send" onclick="javascritfunction();"> 
</form> 

하지만 내 HTML 양식에 GET 메서드를 줄 때, 다음 HTML 양식 데이터는 자바 스크립트 매개 변수 때와 양식을 제출하는 방법 그래서

gotopage.php?data1=one&data2=two is submitting not Javascript action value i.e 
gotopage.php?parameter1="+k+"&parameter2="+m 

즉 제출 이 메소드는 HTML 폼에서 가져온 것인가?

답변

6

GET 양식을 제출하면 작업의 쿼리 문자열이 양식 데이터로 바뀝니다.

대신 숨겨진 입력에 데이터를 입력하십시오.

+0

어떻게 html 형식으로 입력을 숨길 수 있습니까 –

+0

createElement/appendChild – Quentin

0

GET 요청에서 양식 데이터는 쿼리 매개 변수 문자열 이외의 곳에 '이동'할 수 없습니다. 따라서 Quentin이 지적한 것처럼 쿼리 문자열은 양식 필드 키 값 쌍과 자동으로 스왑 아웃됩니다. 따라서 숨겨진 필드를 사용하여 추가 데이터를 포함해야합니다.

POST 요청에서 사용할 쿼리 매개 변수 문자열을 사용할 수도 있지만 양식 데이터는 요청 페이로드 (GET 요청에 포함되지 않음)에 삽입되므로 간섭하지 않습니다 쿼리 문자열. 그래서 원하는 검색어 문자열을 사용하여 작업 URL을 사용자 정의 할 수 있습니다.

+0

감사합니다. Quentin 및 덕분에 Davnicwil이 내 질문에 해결책을 제공합니다. –

관련 문제