같은 페이지내 레이아웃창에 값을 전달해서 처리하고자 합니다. > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

같은 페이지내 레이아웃창에 값을 전달해서 처리하고자 합니다. 정보

같은 페이지내 레이아웃창에 값을 전달해서 처리하고자 합니다.

본문

상품리스트가 있다고 가정 합시다.

제품명, 가격, 날짜 이런식으로 1페이지당 10개씩 출력되는 페이지 입니다.

각 제품명에 마우스를 클릭하면 마우스 위치에 레이어창이 띄워 집니다. (form, table 바깥쪽에 <div로 이뤄진 창)

onclick 이벤트로 창을 띄우고 닫는 것 까지는 되는데 리스트 각 제품마다 고유 ID를 레이어창에 전달하려고 하니 잘 안되네요.

function na_show_layer(lname)
{
if (lname == '') return;
var div = eval("document.all.div_" + lname);
var layer  = document.all ? document.all(lname).style : document.layers[lname];
var show  = document.all ? 'block' : 'visible';
var hide  = document.all ? 'none' : '+ '+ 'none';

if (na_show_layer.arguments.length <= 1)
  layer.display = show;
else
layer.top = event.y - 10 - document.body.scrollTop;
layer.left = event.x - 10;

  layer.show = (na_show_layer.arguments[1] == 0 ? show : hide);
}
////////////////// 창을 띄우는 부분 자바스크립트 일부 ////////////////////////

<table>
<from ..... >
<input type=button name=ord_bt value='배송' onclick="na_show_layer('layer1')"></td>

... </from>
///////////////////////// 창을 불러오는 리스트 상의 항목 //////////////////


<div id="layer1" style="width:850px; height:100px; margin-left:-900px; margin-top:-40px; position:absolute; z-index:3; display:none; background-color:656565;padding:10px;">
<div style="width:100%;padding:5px; background-color:white;">
<?=include("order_delay.php");?>
<input type=button class=button value="Close" onclick="na_hide_layer('layer1');">
</div>
</div>
/////////////////////////// 띄워지는 창 ////////////////////////////////////

include 되는 파일에 상품고유 ID를 넘겨 처리하고 싶은데.... 어떻게 전달 할 수 있을까요 ?


관련 자료나 소스를 알려 주실분의 귀한 정보 부탁드리고
자세히 알려 주시는 분께 최고의 행운을 빌어 드리겠습니다.
  • 복사

댓글 전체

각 제품명에 마우스를 클릭하면<---각 제품의 고유아이디를 호출함수 부분에 넣으면 됩니다
<input type=button name=ord_bt value='배송' onclick="na_show_layer('layer1', '아이디')">

전덜받는 함수는
function na_show_layer(lname, id)

여기 부터는 id를 어디에다 넣는다는것인지 설명이 없으니...
<div id="layer1" style="width:850px; height:100px; margin-left:-900px; margin-top:-40px; position:absolute; z-index:3; display:none; background-color:656565;padding:10px;">
 <div style="width:100%;padding:5px; background-color:white;">
<?=include("order_delay.php");?>
<input type=button class=button value="Close" onclick="na_hide_layer('layer1');">
 </div>
</div>

간단하게 하는 방법입니다. 저기 인크루드 되어있는 부분을 iframe으로 하세요

function na_show_layer(lname,id)
{
if (lname == '') return;
var div = eval("document.all.div_" + lname);
var layer  = document.all ? document.all(lname).style : document.layers[lname];
var show  = document.all ? 'block' : 'visible';
var hide  = document.all ? 'none' : '+ '+ 'none';

if (na_show_layer.arguments.length <= 1)
  layer.display = show;
else
layer.top = event.y - 10 - document.body.scrollTop;
layer.left = event.x - 10;
  ifm.location.href='order_delay.php?id='+id; //추가된 타겟
  layer.show = (na_show_layer.arguments[1] == 0 ? show : hide);
}
////////////////// 창을 띄우는 부분 자바스크립트 일부 ////////////////////////

<table>
<from ..... >
<input type=button name=ord_bt value='배송' onclick="na_show_layer('layer1','<?=id?>')"></td>
 
... </from>
///////////////////////// 창을 불러오는 리스트 상의 항목 //////////////////


<div id="layer1" style="width:850px; height:100px; margin-left:-900px; margin-top:-40px; position:absolute; z-index:3; display:none; background-color:656565;padding:10px;">
 <div style="width:100%;padding:5px; background-color:white;">
  <iframe name='frm' frameborder='0' src=''></iframe>
<input type=button class=button value="Close" onclick="na_hide_layer('layer1');">
 </div>
</div>
/////////////////////////// 띄워지는 창 ////////////////////////////////////

프레임 넓이와 높이는 알아서 조절하세요
닫기는 <input type=button class=button value="Close" onclick="na_hide_layer('layer1','0');">
아무거나 주시면 됩니다

아니면 여기다가
if(id=='0'){
ifm.location.href=''; //추가된 타겟
}else{
ifm.location.href='order_delay.php?id='+id; //추가된 타겟
}

이렇게 해도 되고요
© SIRSOFT
현재 페이지 제일 처음으로