v2.5.2
Giriş yap

Javascript'te Gizlediğim Div Bir Görünüp Bir Kayboluyor

yazilimyolcusu
213 defa görüntülendi

Merhabalar. Şöyle bir sorunum var. Veritabanından gelen id'nin verilerini bir div içinde gösteriyorum. Yalnız ben linke tıklayınca o div'in görünmesi lazım. Bunun için de aşağıdaki kodları uyguluyorum. Yalnız, link'e tıklayınca, div göründüğü gibi kayboluyor. O da veritabnındaki son listelenen verinin link'ine tıklarsam. Diğerlerinde o da çıkmıyor. Yardım ederseniz sevinirim.

<a type="button" id="secondHref" href="?idcek=<?php echo $yeniprojegoster['yeniproje_id']; ?>">Göster</a>

<div class="kutu" id="firstHref">
<?php
    $id = $_GET['idcek'];

    $yeniproje = "SELECT * FROM yeniproje WHERE yeniproje_id='$id'";
    $yeniprojesorgu = mysqli_query($db, $yeniproje);
    foreach($yeniprojesorgu as $yeniprojegoster) {
       echo $yeniprojegoster['yeniproje_kisaadi'];
       echo $yeniprojegoster['yeniproje_tamadi'];
}
    ?>
</div>
document.getElementById("firstHref").style.display = "none";
document.getElementById("secondHref").onclick = function() {
document.getElementById("firstHref").style.display = "block";
}
ebykdrms
391 gün önce

Linke tıkladığınızda görünüyor. Ama sonra sayfa yenileniyor. Yeni sayfa yüklenene kadar geçen sürede butonu görüyorsunuz. Sonra sayfa yenilendiği için her şey ilk haline geri dönüyor.
Linke tıkladığınızda sayfanın yenilenmesi gerekiyorsa, sayfa yenilendikten sonra bir şekilde sayfanın yenilendiğini anlayıp butonu görünür yapmanız gerek.
linke tıkladığınızda aynı sayfaya "?idcek=..." şeklinde parametre gönderiyorsunuz ve aynı sayfaya bu parametreyle gelmiş oluyorsunuz. buradan anlayabilirsiniz.
js tarafında butonu display:none yapmadan önce, query string'te idcek parametresi var mı diye kontrol edebilirsiniz. Eğer varsa butonu display:none yapmazsınız.
Belirttiğiniz 3 satırlık js kodu yerine aşağıdaki script tag'ı içeriklerini yazıp deneyebilirsiniz.
getQueryParam fonksiyonunu ChatGPT'ye yazdırdım, test etmedim.

<script>
    function getQueryParam(key) {
        var regex = new RegExp('[?&]' + key + '(=([^&#]*)|&|#|$)');
        var results = regex.exec(window.location.search);
        
        if (!results) return null;  // anahtar yoksa null döndür
        if (!results[2]) return ''; // anahtara değer atanmamışsa veya "=" işareti yoksa boş string döndür
        return decodeURIComponent(results[2].replace(/\+/g, ' '));
    }
    
    const thisProjectId = "<?=$yeniprojegoster['yeniproje_id']?>";
    const queryString_cekId = getQueryParam('idcek');
    
    if(queryString_cekId !== thisProjectId) { document.getElementById("firstHref").style.display = "none"; }
    document.getElementById("secondHref").onclick = function() {
        document.getElementById("firstHref").style.display = "block";
    }
</script>

Bu script ile, sayfaya idcek parametresiyle gelinmiş mi ve bu parametrenin değeri php'deki $yeniprojegoster['yeniproje_id'] değeriyle aynı mı diye bakıyoruz.