2012-04-26 189 views
0

我有一個包含100行的訂單表格。對於其中的每一個,都有一個彈出式按鈕,用戶可以選擇他們想要訂購的產品。javascript將值傳遞給彈出頁面

我已經適應了我在網上找到的javscript,它按照下面的代碼工作。我的問題是我有100行,每個產品的名稱爲sku1,sku2,sku3 ... sku4,sku5。我不想創建JavaScript代碼的100個實例?

我正在尋找一種方法將我的輸入字段sku3的值傳遞給彈出窗口,以便它知道哪個字段將值發送回。

任何幫助,將不勝感激。

我的主要頁面的代碼是:(培訓相關的片段代碼 - 在真正的文件100行)

<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 JavaScript代碼是:

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

凡JavaScript有SKU1 ,我希望這是一個變量,具體取決於用戶點擊的行數:

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

I dont wan t將sku1,sku2,sku3硬編碼到這些頁面中,因爲我需要100個popupselector.php頁面。

感謝和問候, 萊恩史密斯

回答

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不會在每個循環改變,你可以將它移出循環

- - 更新,從形式到JavaScript彈出發送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代碼,爲​​什麼你不直接插入id到img標籤並將其返回到popupselector.php

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

嗨,謝謝你。我只需要在用戶點擊鏈接時調用的函數(或彈出窗口)。大多數時候用戶不會這樣做,只有當用戶需要獲取產品代碼時。所以我不能看到循環增加好處。我需要將行號或sku號從窗體發送到javascript彈出窗口?任何其他想法?太感謝了。 – Smudger 2012-04-26 13:48:18

+0

只需編輯帖子以符合您的需求 – 2012-04-26 17:04:01