将子窗口的循环值传递到父窗口,反之亦然


Passing loop values of child window to parent window and vice versa

我有一个名为订户名称的文本框。双击该文本框时,应该会打开一个子窗口。在该子窗口中,订阅者名称列表使用 mysql 查询的 while 循环显示。我的问题是当我双击它时,它会传递一个未定义的值。此问题是由于从 db 表中循环订阅者名称引起的。我该如何解决?请尽快帮助我。这是我的代码。

<script type="text/javascript">
function displaymessage(){ 
  opener.document.cash_entry.sub_name.value = document.subscriber.subname.value;
  self.close();
}
</script>
<form>
<?php
$sel=mysql_query("select * from add_ticket");
while($row=mysql_fetch_array($sel)) { 
  $subscriber=$row['subscriber'];
?>
  <input type="text" name="subid" id="subid" value="<?php echo $subscriber; ?>"
  ondblclick="displaymessage()" readonly="true">
<?php } ?>
</form>

您没有命名表单,并且您命名字段的方式与 HTML 代码中的字段不同,并且您有多个具有相同名称的元素,如果有多个元素,则使其成为数组

这样做

<script type="text/javascript">
function displaymessage(fld){ 
  opener.document.cash_entry.sub_name.value = fld.value;
  self.close();
}
</script>
<form>
<?php
$sel=mysql_query("select * from add_ticket");
while($row=mysql_fetch_array($sel)) { 
  $subscriber=$row['subscriber'];
?>
  <input type="text" name="subname" 
  id="subid<?php echo $subscriber; ?>" 
  value="<?php echo $subscriber; ?>"
  ondblclick="displaymessage(this)" readonly="true">
<?php } ?>
</form>

为什么不

  <input type="button" value="<?php echo $subscriber; ?>"
  onclick="displaymessage(this)" >

对于多个值,您可以执行

function displaymessage(fld){ 
  var parts = fld.value.split("|");
  opener.document.cash_entry.sub_name.value = parts[0];
  opener.document.cash_entry.sub_id.value = parts[1];
  self.close();
}

  <input type="button" 
  value="<?php echo $subscriber; ?>|<?php echo $subscriberID; ?>"
  onclick="displaymessage(this)" >