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

时间:2012-05-23 12:07:54

标签: php javascript mysql

我有一个名为订阅者名称的文本框。当我双击该文本框时,应该打开一个子窗口。在该子窗口中,使用mysql查询的while循环显示订阅者名称列表。我的问题是当我加倍时单击它将传递一个值 undefined 。这个问题来自于从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>

1 个答案:

答案 0 :(得分:0)

您还没有为自己的表单命名,并且您的字段命名方式与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)" >