스크립트에서는 이게 앙되나요?

스크립트에서는 이게 앙되나요?

QA

스크립트에서는 이게 앙되나요?

본문

<script>
function insert<?= ($k+1) ?>() {
    if($("#quantity<?= ($k+1) ?>").val() > 0) 
       jQuery("#in_out<?= ($k+1) ?>").val("입고");
    else if($("#quantity<?= ($k+1) ?>").val() < 0)
       jQuery("#in_out<?= ($k+1) ?>").val("출고");

}
</script>

 

이렇게 하니 앙되네요

분할필드 동적추가인데...

<?= ($k+1) ?> 이걸 인식못하는거 같아요,,유유

 

어떻게 해야 해요?

이 질문에 댓글 쓰기 :

답변 1

문제로 보여지는부분은

$("#qunatity<?=($k+1)?>").val() 와

$("#in_out<?=($k+1)?>").val() 입니다.

 

실제로 $k+1에 해당되는 값이 매핑된

$("#qunatity<?=($k+1)?>")

의 내용이

undefined 일 확율이 있거든요

 

그걸 해결하려면

if ($("#qunatity<?=($k+1)?>") && $("#qunatity<?=($k+1)?>").val() &&

   $("#qunatity<?=($k+1)?>").val() > 0) 

로 변경하는겁니다.

 

실제로 구성하실때 가독성을 높이려면 변수를 다시 정의하는게 더 좋을겁니다.

 

$k+1 은 중복 연산을 방지하기위해

 

$k1 = $k+1;

로 변경해서 각 구문에서 <?=$k1?> 으로 사용하시고

JavaScript 변수를 선언해서 값을 할당하는 겁니다.

 

var quan = $("#qunatity<?=($k+1)?>");

quan = (quan && quan.val())?quan.val():0;

와 같이 3항연산자를 사용해서 초기화를 한후 사용하는방법입니다.

 

 

PHP변수나 결과값이

JavaScript에 할당되는것에는 하자가 없습니다.

 

단 논리적 오류가 발생할수있는 여지는 있어서 위와같이 해결하면됩니다.

 

$("#in_out<?=($k+1)?>") 도 위의 방법으로 해결하면 되겠죠?

답변을 작성하시기 전에 로그인 해주세요.
전체 123,539 | RSS
QA 내용 검색

회원로그인

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