【发布时间】:2018-06-19 22:20:11
【问题描述】:
我有一个用户仪表板页面,每次他们访问它时,它都会根据会话电子邮件将他们所有的个人时间提取到数据库中。它构建了所有项目的列表供他们查看。我希望他们能够单击其中一项,然后将其定向到使用 div id 或值作为 MySQL 搜索参数的搜索页面。问题是我无法获得 div id.. 或 value... 或类。当我尝试提醒(this.id)时,它显示为空白。如果我提醒(this.className),则为未定义。
这是我的代码:
function getAllMyItems_itemsTable2(string $email){
include 'config.php';
$sql = 'SELECT * FROM itemsTable WHERE email= :email';
$stmt = $conn->prepare($sql);
$stmt->bindParam(':email', $email, PDO::PARAM_STR);
$stmt->execute();
$getResults = $stmt->fetchAll();
echo '<div class="w3-card w3-white" style="width: 60%; margin: 0 auto; padding: 10px;">';
echo '<div class="row" style="text-align: left;">';
echo '<div class="col-md-3" style="border-bottom: solid 1px gray;">Item Name</div><hr>';
echo '<div class="col-md-3" style="border-bottom: solid 1px gray;">Added Time</div><hr>';
echo '<div class="col-md-3" style="border-bottom: solid 1px gray;">Pieces</div><hr>';
echo '<div class="col-md-3" style="border-bottom: solid 1px gray;">Description</div><hr>';
echo '</div>';
echo '<div class="row" style="text-align: left;">';
foreach( $getResults as $row) {
echo '<div class="col-md-3" id="'.$row['itemName'].'" value="'.$row['itemName'].'"><a href="#">'.$row['itemName'].'</a></div>';
echo '<div class="col-md-3">'.$row['addedTime'].'</div>';
echo '<div class="col-md-3">'.$row['pieces'].'</div>';
echo '<div class="col-md-3">'.$row['description'].'</div>';
}
echo "</div>";
}
我希望能够单击 div id = $row['itemName'] 并获取该名称并将其传递到下一页以执行搜索。有没有更好的方法来解决这个问题?
HTML 部分:
<div class="resultsContainer" style="text-align: center;">
<?php
if(!getNumberOfItems_itemsTable($email) == 0){
echo getAllMyItems_itemsTable2($email);
}
?>
</div>
<script>
$('.resultsContainer').click(function(){
alert(this.id);
});
</script>
【问题讨论】:
-
请向我们展示您的 javascript 设置事件处理程序的位置。
-
已编辑 - 我希望单击 resultsContainer 中的每个 div 会显示该特定 ID。但这只是返回一个空的警报框。
-
对,您只是在整个容器上放置了一个点击事件。不是您实际点击的内容。所以
this只指容器。 -
你知道你不必像那样回应每一行,不是吗?您可以关闭 php 标签并使用纯 html,然后每当您想使用变量时,只需打开标签并回显它,然后再次关闭标签。每一行回显都让人头疼,转义字符、引号等……而且更容易出现愚蠢的错误。
-
想到的另一件事是,您可能想在 ID 的开头添加一个字母,因为数字不允许作为 html 中 ID 字段的第一个字符。如果是动态创建的,这是确保 ID 名称以有效字符开头的最可靠方法。