채택완료

a href post방식으로 여러개 넘기기

버튼이

★  ★  ★  ★ 

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();">&nbsp;&nbsp;★</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개

본문에 제대로 안적어놨습니다 죄송합니다.

별표가 그냥 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값을 보내주고싶은데..
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]
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개

본문에 제대로 안적어놨습니다 죄송합니다.

별표가 그냥 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값을 보내주고싶은

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