테스트 사이트 - 개발 중인 베타 버전입니다

a href post방식으로 여러개 넘기기 채택완료

rlawhd 7년 전 조회 9,802

버튼이

 

★  ★  ★  ★ 

 

4개가 있습니다.

 

이걸 각각 클릭할때  각각 다른값(1,2,3,4)이 post방식으로 넘어가려고 합니다.

 

우선 생각해본방식은 input hidden으로 넘기려고하는데 여러개 넘기는게 어렵네요.

</p>

<p><form name="myForm" method="POST"></p>

<p><input type="hidden" name="myhidden" value="?"></p>

<p>~~//</p>

<p> </p>

<p><a href="javascript:document.myForm.submit();">  ★</a></p>

<p>

 

이런식인데

 

별 순서에따라 1,2,3,4를 어떻게 인식?해서 보내고

받는쪽도 어떻게 인식해서 첫번째 별은 1 두번째 별은 2 이렇게 받을 수 있을까요?

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

답변 3개

채택된 답변
+20 포인트
7년 전

data-* 속성을 추가하여 처리하는 방법이 있습니다.

</p>

<p><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></p>

<p>

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

r
rlawhd
7년 전
본문에 제대로 안적어놨습니다 죄송합니다.

별표가 그냥 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값을 보내주고싶은데..
마르스컴퍼니
7년 전
[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]

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

자바스크립트하고 PHP 막 헷갈리시는 듯 자스는 for(var i=0;i < array.length;i++)

 

이부분을 for 문으로 돌리면 되시는거 아닌가요??

답변드린 코드는 가 4개든 40개든 상관없는건데요

로그인 후 평가할 수 있습니다

</p>

<p><form name="myForm" method="POST"></p>

<p><input type="hidden" name="myhidden" value=""></p>

<p></form></p>

<p> </p>

<p><a href="javascript:mySubmit(1)">★</a></p>

<p><a href="javascript:mySubmit(2)">★</a></p>

<p><a href="javascript:mySubmit(3)">★</a></p>

<p><a href="javascript:mySubmit(4)">★</a></p>

<p> </p>

<p><script></p>

<p>function mySubmit(val){</p>

<p>  var f = document.myForm;</p>

<p>  f.myhidden.value = val;</p>

<p>  f.submit();</p>

<p>}</p>

<p></script></p>

<p>

이정도로 하면.....

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

r
rlawhd
7년 전
본문에 제대로 안적어놨습니다 죄송합니다.

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

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

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

로그인