php pow() 함수이용해서 다중체크 저장 후 불러오기
조회수 828회
안녕하세요. DB에 넘길때 pow()를 이용해서 넘기긴 했지만 받아오는 방법을 찾아도 모르겠어서 질문 등록합니다 ㅠㅠ
<label><input name="attention[]" value="1" type="checkbox"><span>가</span></label>
<label><input name="attention[]" value="2" type="checkbox"><span>나</span></label>
<label><input name="attention[]" value="3" type="checkbox"><span>다</span></label>
<label><input name="attention[]" value="4" type="checkbox"><span>라</span></label>
<input name="att" value="" type="hidden">
이렇게 코드가 있으면
var att= '';
$joinForm.find('[name="attention[]"]:checked').each(function(){
att+= +Math.pow(2, $(this).val());
});
여기서 나온 usePlace 값을 DB에 전송해서 체크하는데 받아오는건 어떻게 해야될지 감이 안잡힙니다; 받아올때도
--table--
user |attention
==================
test1 |24816
$check = $result->attention;
for($i=0;$i<4;$i++){
$check -= pow($i,2)
}
했더니 예상했던데로 쥐뿔도 안되네요... 어떻게 해야할까요 ㅠㅠ
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
여기서 비트연산 검증을 왜 해야 하는지가 궁금하네요.
지금 상태에서 별도 js 처리 없이 mysql에 저장하면
attention
필드에는 예컨대"1,3,4"
와 같이 콤마로 구분된 값이 찍힐 겁니다. 그냥 그걸 가지고 원하시는 작업을 하면 어떨까요.$attentions = implode(',', $result->attention); foreach ([1, 2, 3, 4] as $attentionOptions) { if (!in_array($attentionOptions, $attentions) echo '헉 '.$attentionOptions.'을(를) 체크하지는 않았네요'; }
비트연산 검증을 굳이 하셔야 한다면... 올려주신 js단 코드에서
var attr = '';
을var attr = 0;
으로 바꿔보세요.
댓글 입력