我有這段代碼可以從資料庫中選擇一些資訊到 ul 并通過 id 在新視窗中打開它,這里的問題是在新視窗中打開同一行,即使我點擊了另一個標題,我只想如果用戶點擊標題會打開帶有資料庫同一行資訊的新視窗,如果用戶單擊另一個標題將打開另一個視窗,其中包含同一行的資訊:
<div class="col l6 offest-13">
<?php
$sql = "SELECT * FROM post";
$result = mysqli_query($conn, $sql);
if(mysqli_num_rows($result) > 0){
while($row = mysqli_fetch_assoc($result)){
?>
<ul class="collection" >
<li class="collection-item" >
<h3><a id="a" value="submit" name="submit" href="" ><?php echo
$row['title'];?></a></h3>
<span class="grey-text">by <?php echo $row['author'];?> on <?php echo
$row['publish_date'];?></span>
<br>
<button class="button" id="submit" name="submit" value="submit"><span
class="s_text">GET COINS</span></button>
<div class="time-views">
<span class="time"><?php echo $row['type'];?>s<i class="material-
icons">access_time</i></span>
<span class="views"><?php echo $row['views'];?><i class="material-
icons">visibility</i></span>
</div>
</li>
</ul>
<script type="text/javascript">
$( "#a" ).click(function(){
window.open("createdb.php?id=<?php echo $row['id'];?>","ASDF") ;
});
</script>
<?php
}
}
?>
</div>
uj5u.com熱心網友回復:
由于您正在創建多個專案并為所有專案分配id="a",因此它將始終打開第一個元素,即使您單擊第二個或第三個等。當您回圈訪問資料庫時,您可以將該行的 id 分配給鏈接的 id 像這樣
`<h3><a id="<?php echo $row['id'];?>" value="submit" name="submit" href="" ><?php echo $row['title'];?></a></h3>`
然后添加腳本
<script>
$( "#<?php echo $row['id']?>" ).click(function(){
window.open("createdb.php?id=<?php echo $row['id'];?>","ASDF") ;
});
<script>
但更好的方法是將腳本置于回圈之外
$('.collection .collection-item h1 a').click(function(){
window.open("createdb.php?id=" this.id ,"ASDF") ;
});
uj5u.com熱心網友回復:
您不需要將腳本放在 while 回圈中。似乎根據陣列的長度創建了 n 個事件。
解決方案:-
將您的腳本置于回圈之外
在錨標簽中添加 data 屬性并將 id 放入其中(<a data-id="
<?php echo $row['id']?>")。獲取點擊的元素 id (
$(this).data("id")) 并通過 createdb.php?id=$(this).data("id")對點擊事件使用類而不是 id,因為 id 對于每個事件都是唯一的
uj5u.com熱心網友回復:
它的作業謝謝你我的朋友
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/445807.html
標籤:javascript php html json 数据库
上一篇:React中的輪播
