Çözüldü HTML sayfa değiştirmeden içerik değiştirme

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.
Katılım
28 Mayıs 2023
Mesajlar
39
Daha fazla  
Sistem Özellikleri
Android 13 4GB Ram
Cinsiyet
Erkek
Meslek
Herşeye bakabilirim :D
HTML ile bir site kodluyorum, bayağı ilerledim ama bir yerde takıldım. Bir linke tıklayınca başka bir sayfaya gitmeden içerik değiştirmek istiyorum. Yardım eder misiniz?
 
Çözüm

İçeriğe bağlantı verme başlığından yapabilirsin.
Baştan belirteyim. Gösterdiğin sayfanın tarayıcı geçmişinde görünmesi için tarayıcıya elle url güncellemesi yapabilirsin. Böylece tarayıcı içeriği kendisi yüklemese de geçmişe link yazar ve sayfa geçmişte görünür. Bunun metodu window.history.pushState().

Şimdi, basit örnek vereceğim ama bu sistemi geliştirerek sayfadaki sadece tıklamayla alakalı yerleri de değiştirebilirsin. Örneğin solda menü vardır, içeriği güncellersin gibi.

İçerik güncellenecek kısmı div içine almalısın.
HTML:
<body>
<div id="icerik">
<p>içerik buraya</p>
</div>

<a>'ya href'in yanında bir de fonksiyon vereceğiz.
HTML:
<a href="#" onClick="sayfayiGuncelle('http://localhost/index2.html')" />
Böylece linke tıkladığımızda kendi belirlediğimiz fonksiyon çağırılacak.

Kendi belirlediğimiz fonksiyonda da ilgili sayfanın içeriğini çekip sayfanın üzerine yazacağız. Bunu yaparken tarayıcının sayfa için gösterdiği URL'si değişmeyecek ve yüklenme animasyonu olmayacak.

JavaScript:
<script id="sayfayenileme">
function sayfaGuncelle(url) {
fetch(url)
.then(response => response.text())
.then(sayfa => {
document.getElementById('icerik'.innerHTML = sayfa;
}
}
</script>

Temelde işlem bu kadar. Ama tabii ki catch bloğu içine alarak, sayfayı yüklemeden önce sayfa içeriğine yükleniyor yazarak ve URL değiştirme fonksiyonunu da ekleyerek geliştirilebilir.
 
javascript ajax ile yapabilirsin. Eğer çekeceğin veri dinamik bir veri olacaksa bunun yanında php'de kullanman gerekiyor. Sadece sayfa içeriği çekeceksen sayfa değişmeden ajax ya da XMLHttpRequest kulanabilirsin.
 

Technopat Haberler

Geri
Yukarı