순차 random? 이런 자바스크립트가 있을까요?

순차 random? 이런 자바스크립트가 있을까요?

QA

순차 random? 이런 자바스크립트가 있을까요?

본문

안녕하세요.

회사내에서 필요해서 견적프로그램을 만들고 있는데요.

 

http://xn--w80by1ax26alkcb1d.com/estimate/test.php

 

-------------------------------------------------------------------------

 

<button id='btn-add-row'>행 추가하기</button>
<button id='btn-delete-row'>행 삭제하기</button>
<hr>

 

<form name="esform" method="post" action="es_ok.php">
<table id="mytable" border="1" cellspacing="0">
<tr>
    <th width="200">제목</th>
    <th width="150">일시</th>
</tr>
<tbody></tbody>
</table>

<br><br><br>
<input type="submit" id="" name="" value="submit" class="input_submit" />
</form>

 

<script src="//code.jquery.com/jquery.min.js"></script>
<script>
$('#btn-add-row').click(function() {
    var max="100";
    var rand2 = Math.floor(Math.random() * max); // 0 ~ (max - 1) 까지의 정수 값을 생성

 

    var time = new Date().toLocaleTimeString();
    $('#mytable > tbody:last').append('<tr><td><input name=esno'+rand2+ ' value="110"></td><td>' + rand2+time + '</td></tr>');
});

$('#btn-delete-row').click(function() {
    $('#mytable > tbody:last > tr:last').remove();
});
</script>

 

-------------------------------------------------------------------------

 

이렇게 해서, 입력폼을 반복생성중입니다.

 

form 값을 넘기면, rand2 변수 영향으로

 

esno1, esno10, esno99... 이런 식으로 변수가 넘어오는데요.

 

이걸 random이 아니라, 

<button id='btn-add-row'>행 추가하기</button> 이걸 누를때마다, 1,2,3,4,5... 순차적으로 esno에 넣고싶어요.

 

클릭할때다 생성이 되는거라 random 함수를 생각한건데, 실제 db 처리를 가다보니, 문제가 생길거 같네요.

 

고수님들, 팁을 ... 알려주시면 감사하겠습니다. ㅠ

이 질문에 댓글 쓰기 :

답변 2

<input type="text" name="esno[]" ...> 배열 이름을 사용하면 됩니다.

 

↓ 받는 쪽에선 간편하게 아래처럼 foreach문으로 전달받은 값 사용

 

foreach ( $_POST['esno'] as $esno ) {

    // $esno

}

 

for문으로는 아래처럼….

 

for ($i=0, $cnt=count($_POST['esno']); $i<$cnt; $i++) {

    // $_POST['esno'][$i]

}

 

tbody > tr 개수로 100행 제한하면 편합니다.

무조건 마지막 행 삭제보다, 행마다 삭제 버튼 둬서 원하는 위치 삭제가 낫겠죠?

참고로 순차는 그냥 아래처럼 하면 됩니다. 편의상 기존변수명 그대로 사용.


$('#btn-add-row').click(function() {
    var max = 100; // * string과 number 비교는 다릅니다.
    var time = new Date().toLocaleTimeString();
    var rand2 = $('#mytable > tbody > tr').length; // 이 값과 max 값 비교로 행 제한
    $('#mytable > tbody:last').append('<tr><td><input name=esno'+rand2+ ' value="110"></td><td>' + rand2+time + '</td></tr>');
});
 
foreach ($i=1; $i<=100; $i++) {
    $esno = isset($_POST['esno'.$i]) ? $_POST['esno'.$i] : ''; // $esno = $_POST['esno'.$i] ?? '';
    // 폼 중간에 값이 없을 수 있으니 그냥 반복, 값이 있을 때 처리
}
답변을 작성하시기 전에 로그인 해주세요.
전체 70
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT