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