크롬80버전 결제 이슈, 영카트5 주요패치 확인!

자바스크립트 동적 폼 처리 조언좀 해주세요~

컨텐츠몰 10% 할인
그누보드5
영카트5
매뉴얼
Q & A
제작의뢰
컨텐츠몰
부가서비스
소모임
커뮤니티
자바스크립트 동적 폼 처리 조언좀 해주세요~

QA

가정의 달 맞이 SIR 컨텐츠몰 10% 특별할인 - 코로나19 바이러스로 어려운 시기, SIR이 함께 하겠습니다.

자바스크립트 동적 폼 처리 조언좀 해주세요~

본문

<input type="text" name="input[]" vlaue="1">
<input type="text" name="input[]" vlaue="">
<input type="text" name="input[]" vlaue="2">
<input type="text" name="input[]" vlaue="">
........

 

인풋이  100 개 200개 자동생성된다 생성된만큼 디비 필드 개수를 만들수 없기때문에;;

데이터를 한 필드안에 묶어서 저장하려고 해서  동일한 이름배열형태로 생성했는데요 

 

동일한 인풋 배열을 스크립트로 생성하고 폼전송해서  디비에 기록하고

디비에 기록된  데이터를 다시 불러와서

자동으로 생성된  인풋에 각각 값을 입력했던 위치 고대로 값을 넣을려고 하는데

 

인풋 생성한 스크립트 별개.....

데이터 불러와서 값넣는거 스크립트 별개...

 

따로따로 만들어서 처리를 해야하나요?

아님 자동으로 인풋 생성한 곳에서 한번에 처리가 가능한가요?

 

스크립트를 좀 최대한 간결하게 하고 싶은게 목적인데  이게 지식이 없다보니

코딩 자체가 산으로 가는거 같은데  

 

뭐가 정답인지 조언좀 해주실분 계신가요 

 

 

이 글을 내 페이스북 계정으로 보내기 이 글을 내 트위터 계정으로 보내기

이 질문에 댓글 쓰기 :

답변 3

채택됨

플래토님의 답변

우선 입력폼갯수가 많아서 입력을 한 필드에 받는다는것 자체가

오류를 증가시키는 요인입니다.

10여개 이내의 값으로 구분한다면 db를 보고 어느정도 수정이 가능하겠지만요

 

로직을 구현하기도 어려워지고, 필드명도 구분이 안갑니다.

 

물론, 구조를 잘 짜서 만든다면 좋은 방향으로 구성되겠지만

 

컬럼을 늘리는게 빈공백(입력받지 않는 데이타)을 많이 유발하는것이라 그것또한 애매합니다.

 

DB쿼리를 조금더 자유롭게 다루신다면

1개의 Row의 키값을

main key 로 잡아

서브테이블을 구성하는것도 방법입니다.

필요한 컬럼대신에 필요한 Row로 해당 값들을 입력받아 처리한다면

db에 insert / update 도 수월해지고

화면에 로딩할때도 while / for 문등으로 처리가 수월해집니다.

 

각각 장 단점이 있습니다.

 

여러개의 컬럼값을 단일 컬럼을 크게 잡아 구분자로 처리할경우

구분자를 기준으로 배열로 만들수있고

 

여러개의 컬럼값을 json 구조로 만들어 값을 저장할수도있습니다.

 

제가 답변드리는건 개념적인 방법의 형태들 크게 두가지유형으로 가능하다는점입니다.

로직을 주도하는 분이 개념을 잘 정리해서 처리하시면 될것 같습니다.

주소복사
채택됨
답변의 댓글
포인트적립님의 댓글
필드를 많이 안받는게 최고일듯하군요 ㅋㅋ  지금은 implode 로 한데 묶어서 하긴하는데
말씀하신것처럼 서브테이블 하나 만들어서  그곳에 넣어 매칭하는 방법도 생각해봐야겠네용 답변 감사합니다

닥시님의 답변

프로그램이야 만들기 나름이니 정답이라고 말하기가 좀 그렇죠.

님이 보시기에 만들기 쉽고 나중에 유지 보수하기 편하다고 생각되는 방향으로 하시면 되죠.

 

input 태그도 얼마나 그려야 할지 DB를 봐야하니 같이 만드는게 나을 것 같은데요. 만들면서 값도 넣고요. 

주소복사
답변의 댓글

균이님의 답변

검색이나 정렬이 필요한 필드는 따로 필드를 만들넣고 나머지는 모두 모아서 한 필드에 넣어버려도 됩니다

단순히 데이터를 저장해서 출력하는 용도의 필드들은 하나의 필드에 모아버리는 것이 오히려 더 좋죠

 

인풋 생성한 스크립트 별개.....<---

모든것을 php로 처리하면 됩니다. 간단합니다

wr_1에 모두모아서 넣는다면(데이터량이 많으면 필드타입변경 후)

쓰기 페이지 예

<?php

$val = explode(',', $write['wr_1']); //등록시에는 $wr_1= implode(',', $_POST['input']);

for($i=0; $i<100; $i==){

?>

<input type="text" name="input[<?=$i?>]" vlaue="<?=$val[$i]?>">

<?}?>
 

 

 

주소복사
답변의 댓글
답변을 작성하시기 전에 로그인 해주세요.
전체 87,499 | RSS
고마운 분의 도움으로 질문을 해결하셨다면, 채택을 눌러서 감사의 마음을 전하세요.
어떻게 질문해야 할지 모른다면 질문하는 방법을 읽어 보신후 질문해 보세요.
QA 내용 검색

회원로그인

(주)에스아이알소프트 (06253) 서울특별시 강남구 도곡로1길 14, 6층 624호 (역삼동, 삼일프라자) 대표메일:admin@sir.kr
사업자등록번호:217-81-36347 대표:홍석명 통신판매업신고번호:2014-서울강남-02098호 개인정보보호책임자:이총

© SIRSOFT