Contact

비공개 문의는 메일을 이용해 주세요.

  • 26 pending comments from Eric, Eric, Stephen, Phil, Phil are awaiting approval.
  • 신현석 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 를 거는 방법은 없을 까요 ?

  • 강군 2008-02-14 21:12:12

    마크업은 마크업만이 존재하고 스크립트는 스크립트만이 존재...정말 퍼펙트 하네요. 요즘 그런것이 가능할수 있을 런지....하여튼 자바스크립트를 쓰는걸 밥먹는 것보다 좋아하는 저로서 한번 도전해보아야 겠네요.

  • 강군 2008-02-14 21:12:12

    데려 묻는 것에 대하여 반문하게 되네요..ㅋㅋㅋ 아마 표준 휴유증이 시작된것 같습니다.

  • 강군 2008-02-14 21:12:12

    Unobtrusive Javascript 뿐만 아니라 스타일도 분리..맞다고 생각합니다. 하지만 좀만 생각하면 알수 있지 않을 까요 ? history.go(-1) 같은 경우 자주쓰이죠 .. 하지만 REFERER 주소를 받아보면 이전페이지는 알수 있습니다. 그것도 잘 요리해주면 이전을 초기페이지로 갈수도 있게 해주고요. 궂이 쓸데없는 자바스크립트는 생략하는게 옳고 필요한 경우 페이지마다 스크립트를 두는것도 옳다고 봅니다. 배보다 배꼽이 커지는 경우가 생기더라도...다만 내공으로 그런걸 감안해주어야 하겠죠.

  • 신현석 2008-02-14 19:10:10

    Unobtrusive Javascript라고 하는 개념입니다. 스크립트와 마크업이 완전히 분리되는 것을 말합니다. 정답은 없지만, 마크업에 이벤트 핸들러가 없으니 코드도 간결해지고 보기도 편하죠. 반면 간단한 이벤트의 경우 배보다 배꼽이 더 커질 수도 있고요.

  • 강군 2008-02-14 02:17:17

    아랫글이 이해가 안될까 싶어 다시 씁니다. w3c에는 마크업만이 되어있고..onclick 같은 이벤트 속성은 없더군요. onclick을 스크립트 파일에서 일일이 지정해야 할까요 ?

  • 강군 2008-02-14 02:17:17

    아 분리를 하다보니 onclick 이벤트가 또 문제네요.. w3c 사이트에 보니 onclick='이벤트' 이것보다. id.onclick=function(){....} 이렇게 하는 구문이 보이던데...이것도 자바스크립트로 빼야 할까요 ?