[완료] javascript의 변수를 php파일의 인자로 넘기려면???
안녕하세요, php, html, javascript를 이용하여 엑셀시트와 같은 스타일의
내용조회 페이지를 꾸미고 있습니다.
프레임을 네 개로 나누었습니다. TopLeft, TopRight, BottomLeft, BottomRight이렇게요,
위 Top 프레임은 테이블제목이고 Bottom은 그 데이터입니다.
엑셀 시트를 생각하시면 됩니다.
Top 프레임의 제목을 클릭하면 아래 Bottom의 데이터가 정렬이 되어야 합니다.
한번 누르면 오름차순, 또 한번 누르면 내림차순 이렇게요...
TopLeft.php의 Header부분에 다음과 같은 script code를 넣었습니다.
9 <script language="JavaScript"> 10 ascending = "asc"; 11 12 function alter_ordering() 13 { 14 if( ascending == "asc" ) ascending = "desc"; 15 else ascending = "asc"; 16 } 17 </script>
ascending은 javascript 전역변수입니다.
그리고 table에서 제목을 클릭했을 때 "alter_ordering()" 을 수행하여
ascending값을 반전시켜주고 BottomLeft, BottomRight 를 갱신해 주기위해서
다음과 같이 하였습니다.
41 <table cellspacing='1' cellpadding='1' width='<? echo $space[1]; ?>' height='70%' border='0'> 42 <tr> 43 <td valign='middle' align='center' width='<? echo $space[1]; ?>' > 44 <a href='#' onclick="javascript:alter_ordering(); 45 parent.BottomLeft.location.href='BottomLeft.php?method=<? echo $title[1];?>&ordering=<? echo "<script> document.write( ascending ); </script>'; 46 parent.BottomRight.location.href='BottomRight.php?method=<? echo $title[1];?>&ordering=<? echo "<script> document.write( ascending ); </script>"; ?>'" 47 style='text-decoration:none;'><? echo $title[1]; ?></a> 48 </td></tr></table>
$space[1]은 제목의 테이블 width이고, $title[1]은 테이블 제목 string입니다.
onclick시 alter_ordering()을 호출하여 javascript변수 ascending값을 변경하고
변경된 ascending값을 BottomLeft.php, BottomRight.php의 인수로 넘기고 싶습니다.
위와 같이 하니까, BottomLeft.php, BottomRight.php내에서 ascending 변수가 정의되지 않았다는 에러가 납니다.어떻게 해야될지 막막합니다. javascript 배운지 3~4일 밖에 안되어서 갈팡질팡만 하고 있습니다. 제발 도와주세요.
document.write대신에 +를 쓰세요.
대신에
이렇게 하시면 됩니다.
http://jungjun.net
예, 잘 됩니다. ^^
예, 잘 됩니다. ^^ 많은 도움 됐습니다.
저런 문법은 책에서 못 본거 같은데 설명 좀 부탁드릴 수 있을까요?
어느분들은, javascript의 변수값을 php로 넘기려면 페이지를 다시 로딩하는 수 밖에
없다고 하시던데, 그거랑은 다른건지요?
어떤 문법이 책에서 못본 부분이신지요?
에서 method의 내용은 php에서 채워주고 ascending은 javascript변수이므로 + 연산자로 합쳐준 것 입니다. javascript에서 문자열을 +로 결합할 수 있습니다.
+에 대해서는 책에 나올텐데, 정확히 어떤 문법을 처음 보시는 것인지 지적해주시면 좀더 도움을 드릴수 있을 듯합니다.
그리고 javacript는 웹 브라우저에서 페이지를 로딩할 때 실행되는 것입니다. php는 웹 브라우저에서 서버로 페이지를 요청했을때 그때 코드를 실행하지요.
javascript의 변수값을 php로 넘길때 페이지를 다시 로딩하는 수 밖에 없다는 것은 php의 그러한 특성때문입니다. 페이지를 다시 로딩하는 방법으로 php을 실행해야만 php가 전달된 값을 알 수 있으니까요.
http://jungjun.net
네 ^^ 이해했습니다. +
네 ^^ 이해했습니다. + 연산자를 띄어쓰다가 붙어있는걸 보니 다른건줄 알았습니다. ^^;
/*
제가 아직 이해가 안 가는 것은 저의 코드를 보면 ascending 변수를 (?와 ?) 과 내부에서
사용하기 위함이었는데 ascending은 javascript의 변수이고 (?와 ?) 은 php 부분이니까,
결국은 php로 javascript의 변수를 넘기는 게 되지 않을까요?
그렇다면 지적하신대로 page를 다시 띄우는 수 밖에 없는걸로 보이거든요? 제가 저의 코드를
아직 이해를 못한건지... 참..
*/
위 글을 쓰면서 저의 코드를 다시 보니까, php부분이 아니라 일반 html 부분이었군요. (;_;)
좀 더 자세히 살펴볼 껄 하는 생각이 들었습니다. 그래서 막 적었던 글을 지울까 하다가
이런 사람들도 있다는 걸 보여드리기 위해 코멘트 처리했습니다. ^^
dude7853 님, 감사합니다. 여력이 되신다면 질문 하나 더 올릴텐데 것두 도움부탁드립니다.
(염치가 좀 없는것 같습니다. 죄송합니다. ^^)
댓글 달기