[英]How can I get this pop up box to display the value of the div clicked?
提示:本站为国内最大中英文翻译问答网站,提供中英文对照查看,鼠标放在中文字句上可显示英文原文。
我有一个搜索框,您输入一个名称,然后使用ajax列出匹配名称。 我还有一个div ,该div随名称的弹出而弹出,另一个div弹出,显示该div与之匹配的人的名字。
这是我的代码:
PHP:
<?php
require 'core.inc.php';
require 'connect.inc.php';
if (!empty($_GET['letter'])) {
$letter = $_GET['letter'];
$query = "SELECT `first name`, `last name` FROM `users` WHERE `first name` LIKE '".$letter."%'";
$query_run = mysql_query($query);
while ($query_row = mysql_fetch_assoc($query_run)) {
$first_name = $query_row['first name'];
$last_name = $query_row['last name'];
echo $first_name;
echo " ".$last_name;
?>
<div id="popup" onclick="popup();"><input type="hidden" id="friend_name" name="friend_name" value="<?php print "$first_name"; print "$last_name"; ?>"></div>
<?php
}
}
?>
所有这些都有效,它将获取所有名称并将其列出。 林设置输入值等于名字和姓氏,所以我可以用JavaScript。
Javascript:
function popup() {
var popupBox = document.createElement("div");
popupBox.id = "popupBox";
popupBox.innerHTML = document.getElementById('friend_name').value;
popupboxHolder.appendChild(popupBox);
};
如果仅显示一个名字,这很好用,但是如果出现两个名字,而我单击第二个div ,则在弹出框中显示的是第一个人的名字,而不是第二个人的名字。
由于while循环,您有多个具有相同ID的div。 尝试将其与类名一起使用。
<div class="popup" onclick="popup();">
document.getElementById返回页面上具有给定id的第一个元素。
将为onclick函数提供当前单击元素的上下文。
这==当前点击的弹出div
您的代码应如下所示
function popup() {
var popupBox = document.createElement("div");
popupBox.id = "popupBox";
popupBox.innerHTML = this.getElementsByTagName('input')[0].value;
popupboxHolder.appendChild(popupBox);
};
你可以通过使用JavaScript元素的功能this
避免这些麻烦:
<div class="popup" onclick="popup(this);">....</div>
然后,您可以从函数中访问被单击的元素
function popup(clickedelement) {
var popupBox = document.createElement("div");
popupBox.id = "popupBox";
popupBox.innerHTML = clickedelement.getElementsByTagName('input')[0].value;
popupboxHolder.appendChild(popupBox);
};
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.