0

我有一个名为订阅者名称的文本框。当我双击该文本框时,应打开一个子窗口。在该子窗口中,使用 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>
4

1 回答 1

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)" >
于 2012-05-23T12:15:44.070 回答