선택등록 기능 추가후 등록시 Data too long for column에러가 뜨는데 데이터길이 문제가 아닌거같습니다.
조회수 472회
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
"연풍산업사 공영홈쇼핑 출고 건은 입고 생략"이라니... 고생 많으시네요.
폼이 문제를 일으킨다면, 다음 순서대로 원인을 찾아나가시면 됩니다. 아무리 감이 없기로서니 무조건 다음 셋중 하나가 문제거든요.
- 애초에 클라이언트단에서 문제가 있는지 점검.
regCheckSave()
함수 안에console.log($("#listForm").serialize());
만 넣고 나머지를 다 주석 처리한 다음에 실행시켜서 개발자도구 콘솔창을 한번 확인해 보세요. 넘기고 싶은 데이터가 정해진 형식에 맞게 나와야 합니다. 왠지 이 이슈는 이 단계에서 걸리고 있을 거 같네요. (같은 필드의 값이 여러 개가 겹쳐서 들어온다거나) - 클라이언트 → 서버 전송간 문제가 있는지 점검. 브라우저 개발자도구의 Network 도구를 열어놓은 다음
regCheckSave()
함수의 내용을 그대로 살려서 실제로 AJAX를 실행해 봅니다.POST /inout/orderSave.do
요청에 관한 로그가 찍힐 것인데 요청/응답 각각의 헤더/본문이 뭐라고 나오는지, 애초에 HTTP 상태코드는 뭔지 확인해 보세요. 가끔 1단계는 문제가 없는데 2단계에서 문제가 있는 경우 -- 파일 전송을 해야 하는데enctype=multipart/form-data
을 적용 안했다든가 -- 가 있습니다. - 서버 처리에 문제가 있는지 점검. 혹시 (여기엔 해당없지만) CORS를 위반하고 있다거나 XSS 필터링에 걸린 것은 아닌지, 해당 라우트를 처리하는 해당 메소드의 형식에 맞게 값이 넘어갔는지, 값만 정확히 넘어온다면 정말 원하는 동작을 그 메소드가 제대로 하는지 (즉 메소드 자체에 버그는 없는지) 점검해 보세요. 재수가 없으면 DB와의 마찰이 문제가 될 수 있습니다. (DB 컬럼 타입이
char(3)
인데 2글자를 입력하려고 했다든지)
+ 체크박스를 써서 폼을 제출하면 대충 다음과 같은 요청본문이 생깁니다.
...&ckbox=187&ckbox=188&ckbox=189&...
모질라재단에 따르면 서버 코드는 이걸 목록으로 변환해 처리하는 부분이 있어야 한다고 하네요.
- 애초에 클라이언트단에서 문제가 있는지 점검.
댓글 입력