스크립트에서는 이게 앙되나요?
본문
<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)?>") 도 위의 방법으로 해결하면 되겠죠?