자바스크립트 post 배열변수 전송문제

자바스크립트 post 배열변수 전송문제

QA

자바스크립트 post 배열변수 전송문제

본문

초보입니다.

<?php

$sql  = "select * from g5_point_et where mb_id_et = '{$member['mb_id']}' ";       
$qry = sql_query($sql);

for ($i=0; $row=sql_fetch_array($qry); $i++) { //출력물은 값이 있다면 배열변수$row['part']로  모든 값이나옵니다 

2038512418_1603269318.6578.png //예시는  3개 줄(값)

?>

<form name="myForm" action="page2.php"  method="post"> // post로 넘김

<input type="hidden" name="toto" value="<? echo $row['part'] ?>"> // name이게 걸립니다.

<tr><td><a href="javascript:mySubmit(<?php echo $i ?>)"><? echo $row['part'] ?></a></td></tr>//링크해서 page2.php 로 넘기고자 합니다.

<?php
}
?>

;

</form>

<script>
function mySubmit(val){
  var f = document.myForm;
  f.toto.value = val;           // 이렇게 하면 값은 여러줄 중 맨 마지막 출력결과값만 넘어갑니다.
  f.submit();
}
</script>

2038512418_1603269545.6068.png // 이렇게만 나옵니다; 가변적으로 나와야할텐데요

예) 첫번째 클릭-- 첫번째 배열값

두번째 클릭-- 두번째 배열값

세번째-- 세번째 배열값

이 질문에 댓글 쓰기 :

답변 3



<?php
$sql  = "select * from g5_point_et where mb_id_et = '{$member['mb_id']}' ";       
$qry = sql_query($sql);
?>

<form name="myForm" action="page2.php"  method="post">
<input type="hidden" name="toto" value="">
<table>
<?php
while($row=sql_fetch_array($qry)){ 
?>

<tr><td><a href="javascript:mySubmit('<?php echo $row['part']?>')"><? echo $row['part'] ?></a></td></tr>

<?php
}
?>
</table>
</form>

<script>
function mySubmit(val){
  var f = document.myForm;
  f.toto.value = val;   
  f.submit();
}
</script>

 

for문 사용 방법에 문제가 있네요.

그냥 쉽게 while문을 사용해 봤습니다.

독구파랑님;
적용하여 해결보았습니다. 가변적인 배열값이 잘 넘어옵니다..
기왕에 한 가지 더 궁금한게요
<?php echo $row['part']?> // 잘 넘어옴
또 다른 컬럼의 배열값도 동시에 가져오려면?//  $row['pnum'] <-- 이것도 같이 넘기려면?
<a href="javascript:mySubmit('<?php echo $row['part']?><?php echo $row['pnum']?>')"><? echo $row['part'] ?></a>
----
이렇게 하면 넘어오는데요..맞게 하는건지요..?
감사합니다~

name="toto[<?= $i ?>]" 처럼하시고 배열로 접근해보세요

제건 어렵습니다,
감사합니다~

---
폴라베어님;;
아래 자세하신 풀이 진심으로 감사드립니다.
아직 한 눈에 안들어와서요..ㅠㅠ
제가 많이 부족하여 주신 글보고 차근차근 공부해보겠습니다.
감사합니다~

아래와 같이 회차번호가 유추가능해야지 코드가 간결해집니다.


<?php

// $sql  = "select * from g5_point_et where mb_id_et = '{$member['mb_id']}' ";       
// $qry = sql_query($sql);

//예시는  3개 줄(값)
$row = [];
$row[0]['turn'] = '100'; // 회차번호
$row[0]['part'] = '3,4,1,2,3,4,3,3,3,1,1,2,2,4,2,1,2,1,2,4';
$row[1]['turn'] = '101';
$row[1]['part'] = '2,3,1,2,3,4,3,3,3,1,1,2,4,2,2,1,2,1,2,4';
$row[2]['turn'] = '102';
$row[2]['part'] = '3,1,2,1,1,,,2,2,,,,,,3,,1,2,3';

$r=count($row);
// echo '<pre>';
// var_dump($row, $r);
?>

<form name="myForm" action="page2.php"  method="post">
<input type="hidden" name="toto" value="">
<table>
<?php
for ($i=0; $i<$r; $i++) { //출력물은 값이 있다면 배열변수$row['part']로  모든 값이나옵니다 
?>

<tr><td><a href="javascript:mySubmit(<?php echo $row[$i]['turn'] ?>)"><? echo $row[$i]['part'] ?></a></td></tr>

<?php
}
?>
</table>
</form>

<script>
function mySubmit(val){
  var f = document.myForm;
  f.toto.value = val;       // 이렇게 하면 값은 여러줄 중 맨 마지막 출력결과값만 넘어갑니다.
  f.submit();
}
</script>

<input type="hidden" name="toto" value="<? echo $row['part'] ?>">

를 

<input type="hidden" name="toto_<?=$i?>" id="toto_<?=$i?>" value="<? echo $row['part'] ?>">

로 하신 후에

 

<a href="javascript:document.myForm.submit();"><? echo $row['part'] ?></a>

 

이러게 한번 해보시죠?

 

답변을 작성하시기 전에 로그인 해주세요.
전체 30
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT