2012-04-26 3 views
0

나는 100 행의 주문 양식 테이블을 가지고 있습니다. 이들 각각에는 사용자가 주문하고자하는 제품을 선택할 수있는 팝업이있는 버튼이 있습니다.팝업 페이지로 자바 스크립트 패스 값

나는 아래 코드에 따라 작동하는 net에서 찾은 javscript를 채택했습니다. 내 문제는 내가 100 행을 가지고, 각 제품은 sku1, sku2, sku3 ... sku4, sku5의 이름을 가지고있다. 100 가지 자바 스크립트 코드 인스턴스를 만들고 싶지 않습니다.

필자는 입력 필드 sku3의 값을 팝업으로 전달하여 값을 보낼 필드를 알 수 있도록합니다.

어떤 도움을 주시면 감사하겠습니다.

내 메인 페이지 코드는 다음과 같습니다

<tr id="r1"> 
    <td> 
     <input size=10 type=number id=sku1 name=sku1> 
     <img src=q.png border=0 onClick="window.open('popupselector.php','orderform','width=500,height=600');"> 
    </td> 
    <td> 
     <input type="number" name="qty1" id="qty1"> 
    </td> 
</tr> 
<tr id="r2"> 
    <td> 
     <input size=10 type=number id=sku2 name=sku2> 
     <img src=q.png border=0 onClick="window.open('popupselector.php','orderform','width=500,height=600');"> 
    </td> 
    <td> 
     <input type="number" name="qty2" id="qty2"> 
    </td> 
</tr> 
<tr id="r3"> 
    <td> 
     <input size=10 type=number id=sku3 name=sku3> 
     <img src=q.png border=0 onClick="window.open('popupselector.php','orderform','width=500,height=600');"> 
    </td> 
    <td> 
     <input type="number" name="qty3" id="qty3"> 
    </td> 
</tr> 

popupselector.php의 자바 스크립트 코드는 (와 관계있는의 코드 조각은 실제 문서의 100 개 행을 코드 -) : 자바 스크립트가 sku1있다

<SCRIPT LANGUAGE="JavaScript"> 

function sendValue(s){ 
var selvalue = s.options[s.selectedIndex].value; 
window.opener.document.orderform.sku1.value = selvalue; 
window.close(); 
} 

</script> 
<form name=selectform> 

<SELECT NAME=selectmenu size=30> 
<?=$options?> 
</SELECT> 

<input type=button value="Select" onClick="sendValue(this.form.selectmenu);"> 
</form> 

사용자가 클릭하는 행에 따라이 값을 변수로 사용하기를 원합니다.

window.opener.document.orderform.sku1.value = selvalue; 

I dont wan 내가 100 개의 popupselector.php 페이지가 필요할 것이므로이 페이지에 sku1, sku2, sku3을 하드 코드하십시오.

감사와 안부, 라이언 스미스

답변

1

난 당신이 다음 항목의 id 될 수있는 변수를 만들어 루프를 조회 할 수 있다고 생각합니다.

function sendValue(s){ 
    for (var i = 1; i < 101; i++) { 
     var selvalue = s.options[s.selectedIndex].value; 
     var itemId = 'sku' + i; 
     var item = document.getElementById(itemId).value = selvalue; 
    } 
    window.close(); 
} 

selvalue 각 루프에서 변경되지 않으면

, 당신은 루프 밖으로 이동할 수 있습니다 - - 업데이트는 자바 스크립트 팝업 폼에서 ID를 보낼 - -가 당신은 사용할 수 있습니다 DOM은 IMG 직전에 서 입력의 ID에 액세스하려면 클릭 :

function sendValue(s){ 
    var inputField = s.previousSibling; // will be the space between <input> and <img> 
    if (inputField.nodeName != 'INPUT') 
     inputField = inputField.previousSibling; // will be the <input> node 

    // Here you can get id, name... attributes with: inputField.getAttribute('id'), inputField.getAttribute('name') 
    window.close(); 
} 

일부 생각 : 테이블 행에서 생성 된 경우 PHP 코드, img 태그에 직접 id를 삽입하고 popupselector.php 안에 다시 삽입하지 마십시오.

<img src=q.png border=0 onClick="window.open('popupselector.php?<?=$rowId ?>','orderform','width=500,height=600');"> 
+0

안녕하세요, 고마워요. 사용자가 링크를 클릭 할 때 호출되는 함수 (또는 팝업) 만 필요합니다. 대부분 사용자가 제품 코드를 가져와야 할 때만 사용자가이 작업을하지 않습니다. 그래서 나는 루프가 이득을 얻는 것을 볼 수 없다. 행 번호 id 또는 sku 번호를 폼에서 자바 스크립트 팝업으로 보내야합니까? 다른 아이디어? 대단히 감사합니다. – Smudger

+0

필요에 맞게 게시물을 수정하십시오. –