2012-03-19 2 views
0

<input type=image ...>은 x, y 좌표를 전송하기 때문에 갈 길이 없습니다.POST/PUT 아이콘은 어떻게 만듭니 까?

아이콘을 클릭하면 POST 또는 PUT으로 제출하고 싶으므로 form, input 작업이 있어야합니다.

<form action="" method="PUT" name="abc_table_form"> 
    display icons 

</form> 

올바른 방법은 무엇입니까?

감사합니다.


<table> 
    <row1> <form action="http://google.com/123/"> <button> icon1 </button></form> </row1> 
    <row2> <form action="http://google.com/456/"> <button> icon1 </button></form> </row2> 
</table> 

양식은 테이블에 여분의 공간을 추가합니다. 추악 해 보인다. 양식의 동작이 다르므로 여기 <button>form의 동작을 기반으로합니다. 이 문제를 해결할 올바른 방법은 무엇입니까?

+0

왜 표준 HTML 양식을 사용하지 않습니까?

...
'? – haynar

+0

@haynar 표준 html 양식이란 무엇입니까? 아이콘 주위에 싸여있는 형태가 있습니다. 그게 당신이 요구하는 것입니까? 나는 여기에 온 후에 그것을 포함했다고 생각해. 내 잘못이야. 네, 있습니다. – CppLearner

+0

@haynar - 표준이 아닙니다. – Quentin

답변

3

양식 only support POST and GET.

이미지 입력은 POST 양식을 제출합니다 (이미지가 서버 측 이미지 맵으로 사용되도록 설계 되었기 때문에 이미지에 좌표를 제출하지 않으면 실제로 적합하지 않습니다).

<button type="submit"> <img src="..." alt="Submit"> </button>은 이미지를 사용하여 양식을 제출하는 의미있는 방법입니다 (Internet Explorer의 일부 버전은 이에 대한 응답으로 이상한 값을 제출할지라도).

브라우저에서 다른 방법 (예 : PUT)을 사용하여 HTTP 요청을하려면 XMLHttpRequest를 사용하고 JavaScript를 사용하여 구성해야합니다. 이것에 대한 브라우저 지원은 약간의 변수입니다.

+0

감사합니다. 'POST'는 자원을 만듭니다. 그럼에도 불구하고 양식이 테이블을 감싸고 있습니다. 매개 변수가 다른 것을 제외하면 각 행에는 동일한 아이콘 집합이 있습니다 (이것은 동적 웹 응용 프로그램입니다). 버튼 제출은'form action = 'xxxxxx ''에 기초하고 있습니까 ?? 감사. 또는 각 행에 대해 양식을 래핑해야합니까? 각 행마다 다른 매개 변수가 필요하기 때문입니다. – CppLearner

+0

양식에 전체 테이블을 포함 할 수 있습니다. 양식은 단일 셀에 포함될 수 있습니다. 테이블의 단일 행을 래핑하는 양식을 사용할 수 없습니다. 크로스 브라우저 방식으로 관심있는 행을 구분하려면 [버튼 이름] (http://www.dev-archive.net/articles/forms/multiple-submit-buttons.html)을 사용하십시오. – Quentin

1
<table> 
<tr><td> <form action="..." method=POST><button><img src=test.png alt=Test></button> 
    <input type=hidden name=foo value=bar></form> 
<tr> ... 
</table> 

즉, 각 이미지를 버튼으로 감싸고 버튼을 자체 양식으로 포장하십시오. 양식 모두에 동일한 action 속성이 있어도 견고한 순수 HTML 방식으로 다른 데이터 (예제에서는 foo의 다른 값)를 전달하기 위해 별도의 양식이 필요합니다. 그 이유는 숨겨진 필드를 사용하여이 작업을 수행하고 그 양식을 둘러싼 양식과 관련이 있기 때문입니다.

스타일링의 경우 다음을 고려하십시오.

형식 {display : inline; } button {border : none; 패딩 : 0; }

이미지를 클릭 할 가능성이 없도록 표시하므로 페이지에서 산문으로 설명해야합니다.

양식을 표 행으로 감쌀 수 없습니다 (물론 1 행짜리 표인 경우 제외). 각 양식 내에 다양한 매개 변수를 별도로 포함시켜야합니다 (서로 다른 양식에 동일한 input type=hidden 요소가있는 데는 문제가 없습니다). 그것은 어리 석었지만 어쨌든 프로그래밍 방식으로 페이지를 생성 할 가능성이 높습니다. 프로그램은 무딘 것을 선호합니다.

+0

감사합니다. – CppLearner

+0

@CppLearner, 아니요,'display : inline'은 일부에서 나타나는 양식 주위에 여분의 공백을 없애기위한 것입니다 (대부분은 대부분 공백으로 표시됩니다). 'border : none'을 설정하면 버튼 주위의 기본 테두리가 제거되고'padding : 0'은 기본 회색 패딩을 제거합니다 ..이 두 설정을 제거하면 이미지가 버튼 안에 앉아있는 것처럼 보입니다. 그러나이를 달성하기위한 또 다른 방법은 이미지 자체를 버튼과 같은 것으로 만드는 것이며,이 경우 버튼 내부의 버튼이 홀수로 보일 때 기본 기능을 제거하는 것이 좋습니다. –

관련 문제