107 pending comments from Eric, Phil, Eric, Eric, Phil are awaiting approval.
강군 2008-02-19 03:18:18
그리고 참고로 image 타입을 클릭했을때는 php 인 경우 이미지이름_x=위치, 이미지이름_y=위치, 다른 입력값이 있는 경우 다른 입력값을 같이 전송해줍니다. 단 !! submit 버튼의 값들은 이미지 서브밋을 클릭했으므로 전송하지 않습니다.
강군 2008-02-19 03:18:18
포인팅기기는 대체수단입니다. 일일이 주소를 키보드로 입력하시는 분들보다 자기동네를 전도에서 한번에 클릭하시는 분이 더 많을 거라 생각합니다. 지도에서 자기의 동네를 한번 클릭함으로 AJAX 에서 자동으로 주소를 불러와 주소입력란을 맞추어 줍니다. (자바스크립트가 아닌 경우 휴대폰 키패드에 약하신 분들은 더욱 편리하게 사용가능..) 물런 그 지도 밑에는 주소입력란이 있어 키보드 사용자를 위하여 대체해둡니다. 이런 경우 ~ 좌표입력은 상당히 편리한 능력으로 사용될거라 짐작합니다.
강군 2008-02-19 03:18:18
그리고 이미지 서브밋인 경우 다른 텍스트 서브밋의 전송 버튼은 클릭되어선 안됩니다. 왜냐면 스텝으로 이용될 수도 있기 때문이죠. 즉 텍스트 서브밋이 3개있고 이미지 서브밋이 한개이면 이미지서브밋 클릭했을땐 그 이미지 서브밋의 이름값과 좌표값이 넘어오고 텍스트 서브밋을 클릭한 경우 텍스트 서브밋의 이름과 버튼이름이 전송되어야 하죠. 물런 IE(Multiple IE Serize) 와 Opera, FF 에서 테스트 한 결과 동일하게 작동합니다. 단지 전송을 위하여 사용한다면 좌표값 Submit 이 아닌 일반버튼 Submit 을 사용하는 것이라 생각됩니다.
강군 2008-02-19 03:18:18
포인팅 기기가 아니어도 전송은 되어야 한다는 것에는 동감합니다만...좌표를 넘기기 전에 폼의 SELECT 와 HIDDEN , CHECK 값과 동시에 좌표를 요구한다면요 ? 무조건 키보드로만 모든 작업을 끝낼 수 있어야 한다에는 동감하지 않습니다. (물런 그것은 키보드에 능숙한 사람들의 생각이 아닐런지...저같은..) 하지만 장애를 가지신 분, PDA, 다른 모바일 기기,휴대폰(키패드 자체로 커서가 가능)등은 포인팅으로 하는 작업이 더 수월할 수도 있습니다. 키보드의 포커스로 모든 영역을 이동하여 돌아 온다는 것은 이미 포인팅 기기가 있고 키보드를 사용하는 사람들의 생각이 아닐까요 ? 물런 다른 대체 수단은 필요할 겁니다. 경우에 따라서... 이미지 버튼은 말씀하신데로 폼을 전송하기 위하여 구현했으며 좌표값을 넘기는 경우에만 사용해서는 안됩니다. 밑에 좌표이야기만 했는지 모르겠지만...좌표와 동시에 입력이 필요한 경우이죠. 일일이 타자를 치는 것보다 더 편한것은 한번의 클릭일 수도 있습니다. 키보드로 서밋을 할 수 있게 만들 어 놓은 이미지 서브밋은 W3C의 최소한의 배려가 아닐런지요. 무조건 전송을 불가능하게 하는 것보다 ... 손가락 장애를 가지신 분이 이미지 위치 클릭하는 것이 편할까요. 입으로 일일이 주소를 치는 것이 편할까요 ? 보조역활로 이미지 서브밋은 훌령한 역활을 할거라 생각합니다. 단 포인터 좌표만의 전송이 아닌 포인트 좌표를 필요로 하는 부과적인 요소인 타입으로 보는 것이 적절하지 않을 까 생각합니다.
2008-02-19 02:17:17
캡차는 말씀하신 것처럼 문제점을 내포하고 있어서 사용에 유의하여야 하는 기능이라고 생각합니다. 야후나 구글은 캡차를 사용했어도 다른 대체 수단을 같이 제공하고 있죠.
2008-02-19 02:17:17
이미지 서밋 버튼이라고 하여도 포인팅 기기가 아닌 키보드로도 서밋을 할 수 있게 되어 있습니다. 좌표값만을 사용하는 기능으로 고안되지 않은 것입니다.
2008-02-19 02:17:17
좌표를 넘기는 기능은 폼을 사용하지 않아도 서버측 이미지 맵을 사용하면 됩니다. 그래픽 서밋 버튼은 폼을 서밋하기 위한 용도로 고안된 것이기 때문에 좌표값을 넘기는 경우에만 사용해야 한다고 보기는 힘듭니다. 그렇게 봤을때 서밋 버튼도 폼안의 컨트롤인데 다른 컨트롤에서는 제공되는 값을 사용할 수 없는 것이 구현이 덜 된 것으로 여겨지는 것입니다.
강군 2008-02-19 01:16:16
그리고 문자열 submit 과 포인터 submit 은 ~ 항상 찍은 값에 대한 값이 넘어가야 한다고 생각합니다. 즉 이미지를 찍었다면 이미지 x,y 지점이 넘어가야 하고.. 문자열 submit 버튼을 클릭했다면 문자열 submit 버튼의 값이 넘어가는 것이 맞지 않을까요 ? 즉 액션이 취한 값을 넘겨야 하지 액션이 없는 데 값을 넘기는 것은 올바른 전송방법이 아니라고 생각합니다.
강군 2008-02-19 01:16:16
다음은 보니 계산을 하라고 하던데...제가 워낙에 계산을 못하시는 분들은 많이 보아서 (^^) 이런건 정말 아니라고 생각됩니다. 즉 쉽게는 더하기 어렵게는 곱하기를 못하는 사람은 카페에 가입도 하지 말라는 말씀...이런건 하루 빨리 고쳐져야 한다고 봅니다.
강군 2008-02-19 01:16:16
말씀하신대로 graphical submit button 이지 text submit button 이 아니라고 생각합니다. 포인트 x,y 를 넘겨주는 즉 type=image 이지 이걸 type=submit 처럼 단순히 버튼이라 생각하시는 것보다 type=image 즉 이미지 Binary 를 넘겨주는 것보다 x,y 를 넘겨주는 것이 훌령하다고 생각됩니다. 예를 들면 요즘 image 를 문자열로 노출해서 안에 있는 글자를 입력하라고 하는데..서버의 이미지 만들기의 낭비벽이 아닐런지.. 이럴때 image 의 xy 지점 즉 이미지 안에 동그라미,세모,네모가 있고 해당하는 문자열을 찍어 달라고 한 후 그 x,y 지점을 계산해서 올바른 위치를 찍었는지 노출하는 것이 제대로 된 사용법이 아닐런지요. 그림을 좀 복잡하게 만들어 A-Z 가-하 까지 만들어 놓고(물런 이미지는 서너장을 써서) 이미지의 포인트를 찍어 해당하는 포인트가 맞는 경우 저장 아닌 경우 다른 프로그램의 무분별한 등록..등 이미지를 단순한 버튼이 아닌 이미지 포인트 서브밋이라 생각하는 것이 옳지 않을 까요 ? 그럼 name 과 value 가 없다는 생각은 버릴테니깐요. 즉 value 가 x,y 좌표가 되니깐요.
2008-02-18 23:14:14
type image의 경우도 서밋버튼(graphical submit button)이기 때문에 값을 전송할 수 있어야 할 것 같습니다. image 버튼도 하나의 input 컨트롤이기 때문에 값이 넘어가야 하지 않을까요? 스펙(http://www.w3.org/TR/html4/interact/forms.html#h-17.4.1)에서 x, y 값에 대한 설명만 있고 name, value 값은 넘긴다, 안넘긴다 명시가 안되어 있어서 애매하기는 하네요.
강군 2008-02-18 21:12:12
아 ~ 제가 조만간 사용할 x,y 지점에 대한거 지도 그림을 두고 어디에 사느냐를 묻고 싶을때... 이미지를 쓰는게 적절하지 않은 가 싶습니다. 즉 ~ 대한민국 지도에 서울시 무슨동까지 나오니..우편번호 검색시에 그것이 더 적절하지 않을 까요. 물런 지도에는 다 좌표가 존재해야 겠죠. 누군가 좌표 DB만 있다면 우편번호 검색이 수월 할텐데요.. ^^
강군 2008-02-18 21:12:12
^^ 네.. 이미지는 x,y 지점을 알때만 쓰는 버튼으로 알고 있습니다. 여자의 신체중에 어디를 찍었나..그럴경우.. 물런 value값보다 x,y 지점이 있는게 당연하다고 생각하구요. button타입(단 버튼 노드는 제외) 은 존재의 이유를 모르겠습니다. submit 에 이름을 달고 그위에 CSS 로 백그라운드 그리고 사이즈 border 다 조절해주면 이미지버튼 처럼 보일텐데요. 이미지버튼은 x,y 지점을 알기위해 쓰는게 적절하지 그냥 폼의 데이타 전송으로 적절하진 않다고 생각합니다.
2008-02-18 21:12:12
아, 제가 잠시 착각을 했습니다. submit 버튼이 아니라 image 버튼을 IE6가 지원하지 않습니다. 서밋버튼 쓰다보면 이미지 버튼을 많이 쓰게 되는데 이경우 서밋버튼의 값을 IE가 인식하지 못하는 버그가 있습니다. value의 값이 넘어가지 않고 눌린 좌표가 어레이로 넘어가요.
강군 2008-02-18 20:11:11
클릭한 버튼의 이름=값을 넘기는 것은 당연한 거라 생각합니다. 클릭하지 않은 버튼의 이름=값은 radio 에서 cheked 를 여러개 선택하게 하고 던져주는 거랑 같은게 아닐런지요. 혹 submit 에 대해서 문제점이 있는 브라우져 지적바랍니다. 모바일이라도 괜찮습니다.
강군 2008-02-18 20:11:11
submit 는 ie 3 , ie 4 , ie 5, ie 5.5 ie 6 (Multiple IEs) , ff 2.0.0.12 , opera 9.25 , ie 7 에서 되네요. 모바일이나 그외 브라우져는 아직 테스트를 못해보았습니다. 참고로 프로토타입은 사용하지 않지만 프로토타입의 $() 는 제 임의로 만들어 사용합니다. 프로토타입은 아무래도 저사향 시스템에선 브라우져의 계산이 많아지므로 ~ 될수 있는 한 함수등으로 하고 필요한 경우에는 element 자체를 객체로 사용하고 있습니다.
2008-02-18 08:23:23
프로토타입을 사용해 보셨으면 $()함수가 굉장히 유용하다는 것을 경험하셨을 텐데요. $$()도 같은 개념의 함수인 것 같습니다. getElementsBySelector부터 시작해서 프로토타입의 $()까지 왔는데 제 생각에도 꼭 필요한 함수 같습니다. 스크립트 내용은 저도 내공이 부족해서 잘 모르겠네요. :)
2008-02-18 08:23:23
제 기억에, submit 버튼의 name을 이용하는 방식은 브라우저에서 지원하지 않는 경우가 있습니다. IE6가 그랬던 것 같은데, 해결책으로 사용하신 것과 같이 스크립트를 같이 사용하면 되지만 약간 불안한게 사실이죠.
강군 2008-02-18 01:16:16
그리고 w3c 페이지를 보던중에 $$() 라는 자바스크립트 함수를 보게 되었는데.. Unobtrusive Javascript 방식에서 꼭 필요한 함수더군요. 그거와는 사용법이 틀리지만..$$('div.classname div input.classname') 또는 $$('#idname elementname') 로...사용할 수 있는 함수입니다. 문제점이 있을수도 있으나 보시고 지적해주시기 바랍니다... function $tn(tn,p){var af=[];p=(!p)?document:$(p);if(!tn){af.push(document);return af;}if(tn.charAt(0)=='#'){af.push($(tn.substr(1)));return af;}var cc=tn.indexOf('.'),cs=null;if(cc>-1){cs=tn.substr(cc+1);tn=tn.substr(0,cc);}af=$fnd(p,tn,cs);return af;}function $tns(tn,ps){var fa=[];if(!tn)return fa;if(!ps)ps=document.childNodes;for(var i=0;i<ps.length;i++)fa=fa.concat($tn(tn,ps[i]));return fa;}function $$(a,f){if(!a)return [];var a=a.split(' '),e=null;for(var i=0;i<a.length;i++)e=$tns(a[i],e);if(f&&e.length){for(var i=0;i<e.length;i++){if(e[i])f(e[i]);}}return e;}function $fnd(p,tn,cs){var f=[],e;if(!p)p=document;for(var i=0;i<p.childNodes.length;i++){e=p.childNodes[i];if(e.nodeName.toLowerCase()==tn||!tn){if(cs){if(e.className==cs)f.push(e);}else f.push(e);}f=f.concat($fnd(e,tn,cs));}return f;}
그냥 쓰다 보니 의미전달이 잘 안되는 부분이 있는 것 같아서 핵심은 하나의 폼안에 submit 버튼에 name 속성을 지정해주고 서버에서는 어떤 submit 버튼의 이름값이 존재하는지 체크한후에 응답을 하면 될것 같습니다. cancel,send,diradd 처럼 submit 버튼이 여러개더라도 눌려진 버튼의 이름이 서버로 전송됩니다. 물런 폼안에 값도 같이요.
강군 2008-02-18 01:16:16
^^ 방법을 찾았습니다. input type='submit' name='cancel' value='취소' 입니다. cancel 값이 폼으로 전송된 경우 hidden 으로 숨겨둔 이전 페이지값을 location 해줍니다. (체크 잘해야 할 부분인듯...^^) 그외 다중 카테고리 선택등에도 submit 로 name 값만 바꾸어 서버로 전송을 날립니다. 그럴경우 post,get 에 들어온 폼값을 체크하여 각 값을 수정, 쓰기등에서 다시 재활용합니다. 즉 모바일 같은 곳에서 카테고리선택하다 글이 날라가면 황당하겠죠. post로 받은 값을 다시 content에 넣어 줍니다. subject 도 그렇고.. 자바스크립트가 안되면 전부 서버로 값을 넘깁니다. 자바스크립트가 되는 경우 해당폼의 이름의 값에 적절한 조치(AJAX 나 폼 체크등..)를 합니다. 물런 서버로 넘어온 경우 각 폼의 어떤 버튼이 클릭되었는지도 체크합니다. 하나의 전송에 하나의 폼에 ~필요한 버튼은 input type='submit' 로 다 집어넣습니다. 카테고리 넣고 추가 삭제 역시 POST를 받아가면서 처리하는 거죠. 어떤가요 ? STANDARD 맞는 거 같은 가요 ? ^^
2008-02-17 03:18:18
저라면 취소 버튼을 <a>로 하고 스타일로 모양을 맞췄을 것 같습니다. :)
강군 2008-02-15 03:18:18
[다음으로] [취소] 이렇게 버튼이 두개 있다면 취소는 어떻게 해야 하죠 ? 그렇다고 a 로 할려니 ~ 보기가 흉하고.. 그렇다고 폼을 전송하는 [다음으로] 이걸 a 로 걸면 폼이 전송이 안되고...방법이 있을까요 ?
강군 2008-02-15 03:18:18
현석님 ~ input 버튼은 결국 폼을 전송과 RESET 인데.. reset 이 아닌 link 를 거는 방법은 없을 까요 ?
강군 2008-02-19 03:18:18
그리고 참고로 image 타입을 클릭했을때는 php 인 경우 이미지이름_x=위치, 이미지이름_y=위치, 다른 입력값이 있는 경우 다른 입력값을 같이 전송해줍니다. 단 !! submit 버튼의 값들은 이미지 서브밋을 클릭했으므로 전송하지 않습니다.
강군 2008-02-19 03:18:18
포인팅기기는 대체수단입니다. 일일이 주소를 키보드로 입력하시는 분들보다 자기동네를 전도에서 한번에 클릭하시는 분이 더 많을 거라 생각합니다. 지도에서 자기의 동네를 한번 클릭함으로 AJAX 에서 자동으로 주소를 불러와 주소입력란을 맞추어 줍니다. (자바스크립트가 아닌 경우 휴대폰 키패드에 약하신 분들은 더욱 편리하게 사용가능..) 물런 그 지도 밑에는 주소입력란이 있어 키보드 사용자를 위하여 대체해둡니다. 이런 경우 ~ 좌표입력은 상당히 편리한 능력으로 사용될거라 짐작합니다.
강군 2008-02-19 03:18:18
그리고 이미지 서브밋인 경우 다른 텍스트 서브밋의 전송 버튼은 클릭되어선 안됩니다. 왜냐면 스텝으로 이용될 수도 있기 때문이죠. 즉 텍스트 서브밋이 3개있고 이미지 서브밋이 한개이면 이미지서브밋 클릭했을땐 그 이미지 서브밋의 이름값과 좌표값이 넘어오고 텍스트 서브밋을 클릭한 경우 텍스트 서브밋의 이름과 버튼이름이 전송되어야 하죠. 물런 IE(Multiple IE Serize) 와 Opera, FF 에서 테스트 한 결과 동일하게 작동합니다. 단지 전송을 위하여 사용한다면 좌표값 Submit 이 아닌 일반버튼 Submit 을 사용하는 것이라 생각됩니다.
강군 2008-02-19 03:18:18
포인팅 기기가 아니어도 전송은 되어야 한다는 것에는 동감합니다만...좌표를 넘기기 전에 폼의 SELECT 와 HIDDEN , CHECK 값과 동시에 좌표를 요구한다면요 ? 무조건 키보드로만 모든 작업을 끝낼 수 있어야 한다에는 동감하지 않습니다. (물런 그것은 키보드에 능숙한 사람들의 생각이 아닐런지...저같은..) 하지만 장애를 가지신 분, PDA, 다른 모바일 기기,휴대폰(키패드 자체로 커서가 가능)등은 포인팅으로 하는 작업이 더 수월할 수도 있습니다. 키보드의 포커스로 모든 영역을 이동하여 돌아 온다는 것은 이미 포인팅 기기가 있고 키보드를 사용하는 사람들의 생각이 아닐까요 ? 물런 다른 대체 수단은 필요할 겁니다. 경우에 따라서... 이미지 버튼은 말씀하신데로 폼을 전송하기 위하여 구현했으며 좌표값을 넘기는 경우에만 사용해서는 안됩니다. 밑에 좌표이야기만 했는지 모르겠지만...좌표와 동시에 입력이 필요한 경우이죠. 일일이 타자를 치는 것보다 더 편한것은 한번의 클릭일 수도 있습니다. 키보드로 서밋을 할 수 있게 만들 어 놓은 이미지 서브밋은 W3C의 최소한의 배려가 아닐런지요. 무조건 전송을 불가능하게 하는 것보다 ... 손가락 장애를 가지신 분이 이미지 위치 클릭하는 것이 편할까요. 입으로 일일이 주소를 치는 것이 편할까요 ? 보조역활로 이미지 서브밋은 훌령한 역활을 할거라 생각합니다. 단 포인터 좌표만의 전송이 아닌 포인트 좌표를 필요로 하는 부과적인 요소인 타입으로 보는 것이 적절하지 않을 까 생각합니다.
2008-02-19 02:17:17
캡차는 말씀하신 것처럼 문제점을 내포하고 있어서 사용에 유의하여야 하는 기능이라고 생각합니다. 야후나 구글은 캡차를 사용했어도 다른 대체 수단을 같이 제공하고 있죠.
2008-02-19 02:17:17
이미지 서밋 버튼이라고 하여도 포인팅 기기가 아닌 키보드로도 서밋을 할 수 있게 되어 있습니다. 좌표값만을 사용하는 기능으로 고안되지 않은 것입니다.
2008-02-19 02:17:17
좌표를 넘기는 기능은 폼을 사용하지 않아도 서버측 이미지 맵을 사용하면 됩니다. 그래픽 서밋 버튼은 폼을 서밋하기 위한 용도로 고안된 것이기 때문에 좌표값을 넘기는 경우에만 사용해야 한다고 보기는 힘듭니다. 그렇게 봤을때 서밋 버튼도 폼안의 컨트롤인데 다른 컨트롤에서는 제공되는 값을 사용할 수 없는 것이 구현이 덜 된 것으로 여겨지는 것입니다.
강군 2008-02-19 01:16:16
그리고 문자열 submit 과 포인터 submit 은 ~ 항상 찍은 값에 대한 값이 넘어가야 한다고 생각합니다. 즉 이미지를 찍었다면 이미지 x,y 지점이 넘어가야 하고.. 문자열 submit 버튼을 클릭했다면 문자열 submit 버튼의 값이 넘어가는 것이 맞지 않을까요 ? 즉 액션이 취한 값을 넘겨야 하지 액션이 없는 데 값을 넘기는 것은 올바른 전송방법이 아니라고 생각합니다.
강군 2008-02-19 01:16:16
다음은 보니 계산을 하라고 하던데...제가 워낙에 계산을 못하시는 분들은 많이 보아서 (^^) 이런건 정말 아니라고 생각됩니다. 즉 쉽게는 더하기 어렵게는 곱하기를 못하는 사람은 카페에 가입도 하지 말라는 말씀...이런건 하루 빨리 고쳐져야 한다고 봅니다.
강군 2008-02-19 01:16:16
말씀하신대로 graphical submit button 이지 text submit button 이 아니라고 생각합니다. 포인트 x,y 를 넘겨주는 즉 type=image 이지 이걸 type=submit 처럼 단순히 버튼이라 생각하시는 것보다 type=image 즉 이미지 Binary 를 넘겨주는 것보다 x,y 를 넘겨주는 것이 훌령하다고 생각됩니다. 예를 들면 요즘 image 를 문자열로 노출해서 안에 있는 글자를 입력하라고 하는데..서버의 이미지 만들기의 낭비벽이 아닐런지.. 이럴때 image 의 xy 지점 즉 이미지 안에 동그라미,세모,네모가 있고 해당하는 문자열을 찍어 달라고 한 후 그 x,y 지점을 계산해서 올바른 위치를 찍었는지 노출하는 것이 제대로 된 사용법이 아닐런지요. 그림을 좀 복잡하게 만들어 A-Z 가-하 까지 만들어 놓고(물런 이미지는 서너장을 써서) 이미지의 포인트를 찍어 해당하는 포인트가 맞는 경우 저장 아닌 경우 다른 프로그램의 무분별한 등록..등 이미지를 단순한 버튼이 아닌 이미지 포인트 서브밋이라 생각하는 것이 옳지 않을 까요 ? 그럼 name 과 value 가 없다는 생각은 버릴테니깐요. 즉 value 가 x,y 좌표가 되니깐요.
2008-02-18 23:14:14
type image의 경우도 서밋버튼(graphical submit button)이기 때문에 값을 전송할 수 있어야 할 것 같습니다. image 버튼도 하나의 input 컨트롤이기 때문에 값이 넘어가야 하지 않을까요? 스펙(http://www.w3.org/TR/html4/interact/forms.html#h-17.4.1)에서 x, y 값에 대한 설명만 있고 name, value 값은 넘긴다, 안넘긴다 명시가 안되어 있어서 애매하기는 하네요.
강군 2008-02-18 21:12:12
아 ~ 제가 조만간 사용할 x,y 지점에 대한거 지도 그림을 두고 어디에 사느냐를 묻고 싶을때... 이미지를 쓰는게 적절하지 않은 가 싶습니다. 즉 ~ 대한민국 지도에 서울시 무슨동까지 나오니..우편번호 검색시에 그것이 더 적절하지 않을 까요. 물런 지도에는 다 좌표가 존재해야 겠죠. 누군가 좌표 DB만 있다면 우편번호 검색이 수월 할텐데요.. ^^
강군 2008-02-18 21:12:12
^^ 네.. 이미지는 x,y 지점을 알때만 쓰는 버튼으로 알고 있습니다. 여자의 신체중에 어디를 찍었나..그럴경우.. 물런 value값보다 x,y 지점이 있는게 당연하다고 생각하구요. button타입(단 버튼 노드는 제외) 은 존재의 이유를 모르겠습니다. submit 에 이름을 달고 그위에 CSS 로 백그라운드 그리고 사이즈 border 다 조절해주면 이미지버튼 처럼 보일텐데요. 이미지버튼은 x,y 지점을 알기위해 쓰는게 적절하지 그냥 폼의 데이타 전송으로 적절하진 않다고 생각합니다.
2008-02-18 21:12:12
아, 제가 잠시 착각을 했습니다. submit 버튼이 아니라 image 버튼을 IE6가 지원하지 않습니다. 서밋버튼 쓰다보면 이미지 버튼을 많이 쓰게 되는데 이경우 서밋버튼의 값을 IE가 인식하지 못하는 버그가 있습니다. value의 값이 넘어가지 않고 눌린 좌표가 어레이로 넘어가요.
강군 2008-02-18 20:11:11
클릭한 버튼의 이름=값을 넘기는 것은 당연한 거라 생각합니다. 클릭하지 않은 버튼의 이름=값은 radio 에서 cheked 를 여러개 선택하게 하고 던져주는 거랑 같은게 아닐런지요. 혹 submit 에 대해서 문제점이 있는 브라우져 지적바랍니다. 모바일이라도 괜찮습니다.
강군 2008-02-18 20:11:11
submit 는 ie 3 , ie 4 , ie 5, ie 5.5 ie 6 (Multiple IEs) , ff 2.0.0.12 , opera 9.25 , ie 7 에서 되네요. 모바일이나 그외 브라우져는 아직 테스트를 못해보았습니다. 참고로 프로토타입은 사용하지 않지만 프로토타입의 $() 는 제 임의로 만들어 사용합니다. 프로토타입은 아무래도 저사향 시스템에선 브라우져의 계산이 많아지므로 ~ 될수 있는 한 함수등으로 하고 필요한 경우에는 element 자체를 객체로 사용하고 있습니다.
2008-02-18 08:23:23
프로토타입을 사용해 보셨으면 $()함수가 굉장히 유용하다는 것을 경험하셨을 텐데요. $$()도 같은 개념의 함수인 것 같습니다. getElementsBySelector부터 시작해서 프로토타입의 $()까지 왔는데 제 생각에도 꼭 필요한 함수 같습니다. 스크립트 내용은 저도 내공이 부족해서 잘 모르겠네요. :)
2008-02-18 08:23:23
제 기억에, submit 버튼의 name을 이용하는 방식은 브라우저에서 지원하지 않는 경우가 있습니다. IE6가 그랬던 것 같은데, 해결책으로 사용하신 것과 같이 스크립트를 같이 사용하면 되지만 약간 불안한게 사실이죠.
강군 2008-02-18 01:16:16
그리고 w3c 페이지를 보던중에 $$() 라는 자바스크립트 함수를 보게 되었는데.. Unobtrusive Javascript 방식에서 꼭 필요한 함수더군요. 그거와는 사용법이 틀리지만..$$('div.classname div input.classname') 또는 $$('#idname elementname') 로...사용할 수 있는 함수입니다. 문제점이 있을수도 있으나 보시고 지적해주시기 바랍니다... function $tn(tn,p){var af=[];p=(!p)?document:$(p);if(!tn){af.push(document);return af;}if(tn.charAt(0)=='#'){af.push($(tn.substr(1)));return af;}var cc=tn.indexOf('.'),cs=null;if(cc>-1){cs=tn.substr(cc+1);tn=tn.substr(0,cc);}af=$fnd(p,tn,cs);return af;}function $tns(tn,ps){var fa=[];if(!tn)return fa;if(!ps)ps=document.childNodes;for(var i=0;i<ps.length;i++)fa=fa.concat($tn(tn,ps[i]));return fa;}function $$(a,f){if(!a)return [];var a=a.split(' '),e=null;for(var i=0;i<a.length;i++)e=$tns(a[i],e);if(f&&e.length){for(var i=0;i<e.length;i++){if(e[i])f(e[i]);}}return e;}function $fnd(p,tn,cs){var f=[],e;if(!p)p=document;for(var i=0;i<p.childNodes.length;i++){e=p.childNodes[i];if(e.nodeName.toLowerCase()==tn||!tn){if(cs){if(e.className==cs)f.push(e);}else f.push(e);}f=f.concat($fnd(e,tn,cs));}return f;}
강군 2008-02-18 01:16:16
아 ~ 한가지더 submit 버튼마다 자바스크립트를 덮어 버립니다. 말씀하신 Unobtrusive Javascript 방식으로..
강군 2008-02-18 01:16:16
그냥 쓰다 보니 의미전달이 잘 안되는 부분이 있는 것 같아서 핵심은 하나의 폼안에 submit 버튼에 name 속성을 지정해주고 서버에서는 어떤 submit 버튼의 이름값이 존재하는지 체크한후에 응답을 하면 될것 같습니다. cancel,send,diradd 처럼 submit 버튼이 여러개더라도 눌려진 버튼의 이름이 서버로 전송됩니다. 물런 폼안에 값도 같이요.
강군 2008-02-18 01:16:16
^^ 방법을 찾았습니다. input type='submit' name='cancel' value='취소' 입니다. cancel 값이 폼으로 전송된 경우 hidden 으로 숨겨둔 이전 페이지값을 location 해줍니다. (체크 잘해야 할 부분인듯...^^) 그외 다중 카테고리 선택등에도 submit 로 name 값만 바꾸어 서버로 전송을 날립니다. 그럴경우 post,get 에 들어온 폼값을 체크하여 각 값을 수정, 쓰기등에서 다시 재활용합니다. 즉 모바일 같은 곳에서 카테고리선택하다 글이 날라가면 황당하겠죠. post로 받은 값을 다시 content에 넣어 줍니다. subject 도 그렇고.. 자바스크립트가 안되면 전부 서버로 값을 넘깁니다. 자바스크립트가 되는 경우 해당폼의 이름의 값에 적절한 조치(AJAX 나 폼 체크등..)를 합니다. 물런 서버로 넘어온 경우 각 폼의 어떤 버튼이 클릭되었는지도 체크합니다. 하나의 전송에 하나의 폼에 ~필요한 버튼은 input type='submit' 로 다 집어넣습니다. 카테고리 넣고 추가 삭제 역시 POST를 받아가면서 처리하는 거죠. 어떤가요 ? STANDARD 맞는 거 같은 가요 ? ^^
2008-02-17 03:18:18
저라면 취소 버튼을 <a>로 하고 스타일로 모양을 맞췄을 것 같습니다. :)
강군 2008-02-15 03:18:18
[다음으로] [취소] 이렇게 버튼이 두개 있다면 취소는 어떻게 해야 하죠 ? 그렇다고 a 로 할려니 ~ 보기가 흉하고.. 그렇다고 폼을 전송하는 [다음으로] 이걸 a 로 걸면 폼이 전송이 안되고...방법이 있을까요 ?
강군 2008-02-15 03:18:18
현석님 ~ input 버튼은 결국 폼을 전송과 RESET 인데.. reset 이 아닌 link 를 거는 방법은 없을 까요 ?