Çözüldü JS kodu 2 ayrı sayfada çalışması gerekirken kodlar sayfa yüklenmeden çalışıyor

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

BreaKSooN05

Kilopat
Katılım
17 Şubat 2019
Mesajlar
4.783
Çözümler
19
Arkadaşlar bir array oluşturdum. Ürünler adında. Bu var olan ürünler shop.html sayfasında array. Length mantığı ile yazdırıyorum.
2. sayfam ise tıkladığım ürünün detaylar sayfası satın alma sayfası yani. Ürüne tıkladığımda beni detaylar.html'e attırıyorum. detaylar.html sayfasında ise tıkladığım ürün'ün detayları bulunuyor bunu da array içinden çekiyorum.

Ancak hata alıyorum. Birincisi shop.html'de ürüne tıkladığımda ürünün array elemanını yönlendirip detaylar.html'de yazdıramıyorum. 2.si de detaylar.html yüklenince shop.html'e tekrar ürünleri eklemeye çalışıyor ve ekleyemeyip hata veriyor.

Ürünler array =>

1661699453638.png


Ürünleri yaratıyorum =>

1661699490913.png


Burada ise yarattığım ürünleri listeleyip Click Event'i ekliyorum =>

1661699538016.png


Burada da ürünün detayını yaratıyorum=>

code.png


shop.html çıktısı =>

1661699755892.png


detaylar.html çıktısı boş maalesef.

1661699819489.png


Proje linki: GitHub - hdogukanozkan/new-test
Çıktı: Document
 
Son düzenleyen: Moderatör:
Çözüm
Xx shop.html de ki gördüğün ürünleri kapsayan Pro-container Class'ı. Orada sorun yok. Bu kodun detaylar sayfasına geçince çalışmaması gerekiyor. Çalışınca çakışma yaşanıyor çünkü öyle bir class 2. sayfada yok.
Tüm işi tek bir script üzerinden yapmaktansa ayrı ayrı scriptlere ayır. Zaten değişken global ise diğer scriptlerden de ona erişebiliyorsun.

Bu arada yavaştan bir Javascript framework'üne geçseniz daha iyi olur. Yoksa bunun gibi işler için çok uğraşırsın.
Bir sayfada oluşturduğun bir scope'u bu şekilde diğer sayfaya aktaramazsın. Çünkü javascript döküman üzerinde çalışan bir kod. sproduct açıldığında artık yeni bir dom yaratılıyor.

Ya aynı sayfada kalacaksın , ya da adres satırından veriyi sproduct.html e yollayacaksın.

sproduct.html?id=1 gibi. Sonrasında adresi satırından ilgili ürün id 'yi alarak sayfanı oluşturabilirsin.
 
Bir sayfada oluşturduğun bir Scope'u bu şekilde diğer sayfaya aktaramazsın. Çünkü JavaScript doküman üzerinde çalışan bir kod. Sproduct açıldığında artık yeni bir dom yaratılıyor.

Ya aynı sayfada kalacaksın, ya da adres satırından veriyi sproduct.html e yollayacaksın.

sproduct.html?ID = 1 gibi. Sonrasında adresi satırından ilgili ürün ID'yi alarak sayfanı oluşturabilirsin.

Çok sağ olun hocam şimdilik localStorage ile yaptım. Çok güvenilir gelmedi ama olsun. İnşallah çakışma vb sorunlar olmaz.
 

Geri
Yukarı