상품권 매입 신청서를 제작 중입니다.
CMS/프레임워크 | XE 1.x |
---|---|
개발 언어 | PHP 7.3 |
문제 페이지 주소 | 비공개 (작성 후 5일 경과) |
상품권 매입 신청서를 제작중인데
input type text 를 추가 및 제거 해주는 소스를 찾아 넣고
추가까지 가능해졌습니다.
현재 기본적으로 등록되어있는 input type text 의 name.value 값으로는 정상적으로 출력이 잘됩니다.
근데 동적으로 추가된 input type text의 name.value값을 스크립트에 다 추가해놓은후에
텍스트 박스를 추가하지않으면 오작동이 됩니다.
어떻게 해결해야할지 궁금합니다.
[소스코드 복사용]
function rm_comma(num){
var number = num + "";
return number.replace(",","");
}
function submit_request(f)
{
f.nick_name.value = f.user_name.value;
f.is_secret.value = 'Y';
f.title.value = f.user_name.value + ' 님 문의';
f.extra_vars1.value = f.check1.value; /* 상품권종류 */
f.extra_vars2.value = f.pin_number1.value + '-' + f.pin_number2.value + '-' + f.pin_number3.value + '-' + f.pin_number4.value; /* 핀번호 */
f.extra_vars3.value = f.pay1.value + '원'; /* 현재원가 */
f.extra_vars4.value = f.pay2.value*0.87 + '원'; /* 입금해야하는 금액 수정 [ ex)수수료 20%일시 *0.8로수정 ] */
f.extra_vars5.value = f.bank.value; /* 은행명 */
f.extra_vars6.value = f.user_name.value; /* 예금주 */
f.extra_vars7.value = f.banknum.value; /* 계좌번호 */
f.extra_vars9.value = f.tel.value; /* 연락처 */
return procFilter(f, insert);
}
/* 작성후 */
function completeDocumentInserted(ret_obj) {
alert(thankyou);
location.href = location_url;
}
댓글 9
한줄만 입력으로 넘어가버리네요.
첫번째 상품권 번호만 올라가고
추가를 한후 두개다 입력하면
두개가 다 등록이되게하고싶은데
그게 잘안됩니다..
추가를 안한후에 추가될 input type text 의 name 을 함수로 추가하면 아예 작성이되질않더라구요..
게시글 조회시에 슬래시를 감지해 각 핀번호로 나눠 출력하면 되지 않을까 싶습니다. ( PHP: explode('/', $vars) )
확장변수로 처리하는듯 한데, 확장변수는 게시판 설정에서 미리 추가한 ID가 아니면 등록되지 않습니다.
게시글 조회 목적이아닌 매입신청서 페이지에서
상품권이 두개있다 가정하면
상품권 매입 신청서 페이지에서 핀번호 1(4-4-4-6 4개의 텍스트박스가있음)에 입력 후 (추가) 버튼 클릭 핀번호 2입력란에 핀번호 입력후 매입 신청 등록시 진행현황 페이지에 글이 등록되었으면 합니다.
하지만 항상 핀번호2까지있는게 아니니 추가를 안눌럿을때는 핀번호1 의 텍스트박스들만 인식해서 등록이되고 추가를 누른후 핀번호2 텍스트 박스까지있다면 두개의 핀번호 텍스트가 글에 등록되었으면 하는 바램입니다..
제가 말을 잘못해서 이해를 하셨을지 잘모르겠네요..
입력을 받을때는 extra_vars 가 아닌 아예 다른 이름으로(예시로 P[0], P[1], P[2] ..) 받아버리고.
onsubmit 이벤트 시에 P[n] 의 개수를 확인한 뒤, 모든 값을 / 로 구분하여 한 문자열로 합치는거죠.
예를 들어,
P[0].value 가 '1111-1111' 이고, P[1].value 가 '2222-2222' 면
var PArr
for(var i = 0; i < P.length - 1; i++){
PArr.push(P[i].value);
}
return PArr.join('/');
을 실행했을때의 값은 1111-1111/2222-2222 가 되겠죠.
이 값을 extra_vars2.value 로 설정해 버리면 모든 핀번호 값이 게시글로 등록되겠죠.
물론 슬래시로 구분된 상태라 보기 싫겠지만요.
---
그리고, 보기 싫은 이 부분을 해결하기 위해서, 게시글 읽기 부분에서 따로 처리를 해 줘야겠지요.
extra_vars2 의 값이 1111-1111/2222-2222 같은 형태로 들어가 있을테니,
/ 를 기준으로 잘라서 하나씩 출력해주면 되겠군요.
{@ $PA = explode('/', $extra_vars2); }
<table>
<tr><td>No.</td><td>핀번호</td></tr>
<tr loop="$PA => $no, $pin">
<td>{$no}</td><td>{$pin}</td>
</tr>
</table>
이런것 처럼요.
각 인풋 벨류 값을 아예 폼에서 넘기는 값으로 지정하는 것이 아니라.
그냥 폼으로 넘기는 값은 별도의 인풋 벨류 하나를 따로 지정하고
추가해서 받는 값들 나중에 하나로 합쳐서
넘기는 폼값으로 전달해서 넘기는 식으로 하는 것도
방법일거같아요