버튼이
★ ★ ★ ★
4개가 있습니다.
이걸 각각 클릭할때 각각 다른값(1,2,3,4)이 post방식으로 넘어가려고 합니다.
우선 생각해본방식은 input hidden으로 넘기려고하는데 여러개 넘기는게 어렵네요.
Copy
<form name="myForm" method="POST">
<input type="hidden" name="myhidden" value="?">
~~//
<a href="javascript:document.myForm.submit();"> ★</a>
이런식인데
별 순서에따라 1,2,3,4를 어떻게 인식?해서 보내고
받는쪽도 어떻게 인식해서 첫번째 별은 1 두번째 별은 2 이렇게 받을 수 있을까요?
|
답변 3개 / 댓글 3개
채택된 답변
+20 포인트
마르스컴퍼니
2018-05-10 (목) 15:30:37
data-* 속성을 추가하여 처리하는 방법이 있습니다.
Copy
<form name="myForm" method="POST">
<input type="hidden" name="myhidden" value="?">
~~//
<a href="javascript:;" data-val="1"> ★</a>
<a href="javascript:;" data-val="2"> ★</a>
<a href="javascript:;" data-val="3"> ★</a>
<a href="javascript:;" data-val="4"> ★</a>
</form>
<script>
$(function() {
$('a[data-val]').on('click', function() {
var selected_val = $(this).data('val');
$('input[name=myhidden]').val(selected_val);
$(this).closest('form').submit();
return false;
});
});
</script>
답변에 대한 댓글 2개
rlawhd
2018-05-10 (목) 16:22:26
마르스컴퍼니
2018-05-10 (목) 17:06:56
[code]
<form name="myForm" method="POST">
<input type="hidden" name="myhidden" value="?">
~~//
<?php for ($i = 0; $i < count($array); $i++) { ?>
<a href="javascript:;" data-val="<?php echo $array[$i] ?>"> ★</a>
<?php } ?>
</form>
<script>
$(function() {
$('a[data-val]').on('click', function() { // data-val 속성값을 갖는 모든 버튼에 대해
var selected_val = $(this).data('val'); // 클릭된 버튼의 특정값 추출
$('input[name=myhidden]').val(selected_val); // myhidden 에 저장
$(this).closest('form').submit(); // form submit
return false;
});
});
</script>
[/code]
<form name="myForm" method="POST">
<input type="hidden" name="myhidden" value="?">
~~//
<?php for ($i = 0; $i < count($array); $i++) { ?>
<a href="javascript:;" data-val="<?php echo $array[$i] ?>"> ★</a>
<?php } ?>
</form>
<script>
$(function() {
$('a[data-val]').on('click', function() { // data-val 속성값을 갖는 모든 버튼에 대해
var selected_val = $(this).data('val'); // 클릭된 버튼의 특정값 추출
$('input[name=myhidden]').val(selected_val); // myhidden 에 저장
$(this).closest('form').submit(); // form submit
return false;
});
});
</script>
[/code]
2018-05-10 (목) 17:16:53
자바스크립트하고 PHP 막 헷갈리시는 듯
자스는 for(var i=0;i < array.length;i++)
<a href="javascript:mySubmit(1)">별</a> 이부분을 for 문으로 돌리면 되시는거 아닌가요??
답변드린 코드는 <a href ~ </a>가 4개든 40개든 상관없는건데요
2018-05-10 (목) 15:28:37
Copy
<form name="myForm" method="POST">
<input type="hidden" name="myhidden" value="">
</form>
<a href="javascript:mySubmit(1)">★</a>
<a href="javascript:mySubmit(2)">★</a>
<a href="javascript:mySubmit(3)">★</a>
<a href="javascript:mySubmit(4)">★</a>
<script>
function mySubmit(val){
var f = document.myForm;
f.myhidden.value = val;
f.submit();
}
</script>
이정도로 하면.....
답변에 대한 댓글 1개
rlawhd
2018-05-10 (목) 16:24:05
본문에 제대로 안적어놨습니다 죄송합니다.
별표가 그냥 4개 찍혀있는게 아니라
for문을 통해서 array.length (=4)라서 4개가 출력되는거였습니다.
더 정확히는
for($i=0; $i<$total.length(=4); $i++){
<a href="javascript:document.myForm.submit();" class="<?=$array[$i]?>> ★</a>
}
이런식입니다.
각 별표마다 javascript:document.myForm.submit() 을 통해서
다음 php파일로 hidden값을 보내지긴 하는데
버튼당 각각 hidden값을 어떻게 줘야하는지 궁금합니다.
마음같으면 class값을 보내주고싶은
별표가 그냥 4개 찍혀있는게 아니라
for문을 통해서 array.length (=4)라서 4개가 출력되는거였습니다.
더 정확히는
for($i=0; $i<$total.length(=4); $i++){
<a href="javascript:document.myForm.submit();" class="<?=$array[$i]?>> ★</a>
}
이런식입니다.
각 별표마다 javascript:document.myForm.submit() 을 통해서
다음 php파일로 hidden값을 보내지긴 하는데
버튼당 각각 hidden값을 어떻게 줘야하는지 궁금합니다.
마음같으면 class값을 보내주고싶은
답변을 작성하려면 로그인이 필요합니다.
별표가 그냥 4개 찍혀있는게 아니라
for문을 통해서 array.length (=4)라서 4개가 출력되는거였습니다.
더 정확히는
for($i=0; $i<$total.length(=4); $i++){
<a href="javascript:document.myForm.submit();" class="<?=$array[$i]?>> ★</a>
}
이런식입니다.
각 별표마다 javascript:document.myForm.submit() 을 통해서
다음 php파일로 hidden값을 보내지긴 하는데
버튼당 각각 hidden값을 어떻게 줘야하는지 궁금합니다.
마음같으면 class값을 보내주고싶은데..