我有一个包含100行的订单表格。每个按钮都有一个弹出按钮,用户可以选择他们想要订购的产品。
我已经调整了我在网上找到的javscript,它按照下面的代码工作。我的问题是我有100行,每个产品的名称为sku1,sku2,sku3 ... sku4,sku5。我不想创建100个javascript代码实例?
我正在寻找一种方法将输入字段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;
我不想将sku1,sku2,sku3硬编码到这些页面中,因为我需要100个popupselector.php页面。
谢谢和问候, 莱恩史密斯
答案 0 :(得分: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发送到javascript弹出窗口 - 您可以使用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');">