我有一个用户仪表板页面,每当他们访问它时,它会根据会话电子邮件将所有个人时间都拉到数据库中。它构建了所有项目的列表供他们查看。我希望他们能够点击其中一个项目然后使用div id或value作为MySQL搜索参数指向搜索页面。问题是我无法获得div id ..或value ...或class。当我尝试提醒(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>
答案 0 :(得分:8)
您只在整个容器上放置了一个click事件。不是你实际点击的。所以这只涉及容器......
由于您在div上没有使用唯一ID的不同类,因此很难为这些div设置click事件。您可能希望在div上添加一个带有id的类。然后,您可以更改事件处理程序以专门响应这些事件。
一个例子:
echo '<div class="col-md-3 actionable" id="'.$row['itemName'].'" value=.....';
//^^^^^^^^^^
然后:
$('div.actionable').on('click',function(){
//^^^^^^^^^^^^^^
alert( $(this).attr('id') );
});
注意我更改了id的引用,因为你在jquery中,所以更像jquery。也可以保持一致;)