채택완료

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

2018-09-21 (금) 18:55:49 2,533

<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개 / 댓글 1개

채택된 답변
+20 포인트

문제로 보여지는부분은

$("#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)?>") 도 위의 방법으로 해결하면 되겠죠?

답변에 대한 댓글 1개

2018-09-22 (토) 06:01:39
감사합니다. 적용은 어렵네요,,

답변을 작성하려면 로그인이 필요합니다.