채택완료

체크박스 value 값 치환

2020-09-23 (수) 20:16:42 2,008
Copy
<script>

$("#form-download").on('click', function () {
    var _arr = {
        mode : $(this).attr('id').replace("form-", ""),
        order_reserve: []
    };

    $.each($("input[name^=order_reserve]"), function (key, val) {
        if ($(val).prop("checked")) {
            _arr.order_reserve.push($(val).val());
        }
    });

    $.ajax({
        method : "POST",
        async : false,
        url : './download.php',
        data : _arr,
        success : function (res) {
            var ifm = $("<iframe>").attr({
                'id' : 'downloadFrame',
                'src' : res
            });

            $("#downloadFrame").remove();
            $("#excelArea").append(ifm);
        }
    });
})

</script>

 

<?php $reserve = explode(",", $loadList["id_reserve"]); ?>
<?php $orderReserve = array ("일반", "예약"); ?>
<?php foreach ($orderReserve as $key => $val) : ?>
    <div class="form-check form-check-inline">
        <input class="form-check-input" type="checkbox" id="order_reserve_<?php echo $key + 1; ?>" name="order_reserve[]" value="<?php echo $val; ?>" <?php echo (in_array($val, $reserve)) ? "checked=\"checked\"" : ""; ?>>
        <label class="form-check-label" for="order_reserve_<?php echo $key + 1; ?>"><?php echo $val; ?></label>
    </div>
<?php endforeach; ?>

이런 소스가 있는데요

    $.each($("input[name^=order_reserve]"), function (key, val) {
        if ($(val).prop("checked")) {
            _arr.order_reserve.push($(val).val());
        }
    });

여기서 일반, 예약을 value값을 1, 2로 바꿔서 post로 보내는 방법 있을까요?

선택이 일반 혼자 또는 예약 혼자 또는 일반, 예약 같이 될 수도 있는거라 그렇게 설계된 소스에요

밑에 인풋에서는 그대로 일반, 예약으로 표시되게 해야해요

답변 1개 / 댓글 1개

채택된 답변
+20 포인트
2020-09-23 (수) 21:55:02

$.each($("input[name^=order_reserve]"), function (key, val) {
  if ($(val).prop("checked")) {
    if ($(val).val() == '일반') 
      _arr.order_reserve.push('1');
    else if ($(val).val() == '예약') 
      _arr.order_reserve.push('2');
  }
});

답변에 대한 댓글 1개

오마이갓! 완전 퍼펙트하게 돼요

일반, 예약 둘 다 눌러서 안되면 어쩌나 했는데 정말 잘되네요

너무 감사합니다

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