Çö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.

249873

Kilopat
Katılım
17 Şubat 2019
Mesajlar
5.050
Çözümler
20
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.
"yarat" fonksiyonundaki "xx.appendChild(div);" kısmında hata veriyor bu "xx" nedir?

Ayrıca window.onload'a bakmanı öneririm sayfa yüklendiğinde çalıştırıyor javascripti.
 
"Yarat" fonksiyonundaki "xx. AppendChild(div);" kısmında hata veriyor bu "xx" nedir?

Ayrıca window. Onload'a bakmanı öneririm sayfa yüklendiğinde çalıştırıyor JavaScript'i.

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.
 
Yarat fonksiyonu çalışıyor. .pro-container selector ile bir element yaklamaya çalışıyorsun ama null geliyor. Sorun bu.

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.
Çok güzel. Sorunu biliyorsunuz. O halde fonksiyonun çalışmaması için 77-79. satırlar arasındaki kodu farklı bir yerde çalıştırmanız gerekme. Çünkü detay sayfasında script tekrar yükleniyor ve yarat fonksiyonu tekrar render oluyor.

Ürün listesini farklı bir yerden almanı öneririm. Mesela ProductService adında bir script oluşturursun içerisine getProduct adında bir fonksiyon ile ürünleri alırsın.
Her bir sayfa için ayrı script oluşturmak daha mantıklı. Tabiki ana bir global script olsun muhakkak.
 
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.
 
Çözüm
Arkadaşlar bu aralar VS Code'da sorun yaşıyor musunuz? CTRL + S yapıyorum yapmıyor geç yapıyor. takılıyor gibi..

Bir de dediğiniz gibi. shop.html altında script tagı açtım yaratmayı o tarafa gönderdim. O uyarı ortadan kalktı ancak detaylar sayfası oluşturulmuyor.
 
Arkadaşlar bu aralar VS Code'da sorun yaşıyor musunuz? CTRL + S yapıyorum yapmıyor geç yapıyor. takılıyor gibi..

Bir de dediğiniz gibi. shop.html altında script tagı açtım yaratmayı o tarafa gönderdim. O uyarı ortadan kalktı ancak detaylar sayfası oluşturulmuyor.
Hayır sorun yaşamıyorum.

Tahminimce bir HTML sayfasından başka bir HTML sayfasının içeriğini değiştiremiyorsunuz. HTML sayfasına parametre şeklinde geçirebiliyorsak olabilir ama nasıl yapılır bilmiyorum.
 
Hayır sorun yaşamıyorum.

Tahminimce bir HTML sayfasından başka bir HTML sayfasının içeriğini değiştiremiyorsunuz. HTML sayfasına parametre şeklinde geçirebiliyorsak olabilir ama nasıl yapılır bilmiyorum.

Benim tahminim şu, ben şimdi ürünleri yaratıyorum ama yaratmadan önce ürünleri tanımlıyorum. Yani ürünleri aslında boş olarak tanıtıyorum ve kod bu yüzden çalışmıyor.

Şimdi bir foreach döngüsünden sonra bu kodun çalışması için ne yapmam lazım onu araştırıyorum.

Arkadaşlar son bir yardıma ihtiyacım kaldı sanıyorum.

1661704731290.png


1661704755483.png


1661704770334.png


Pro değişkenini detaylar.html sayfasına tanıtamıyorum. 1.si function içinde olduğu için dışarıda tanımsız oluyor. 2.si function ile aktarmayı denedim deli gibi hata yağdı normal de bu hatalar yoktu. Başka kullanmadığım metot var mıdır?
 
Son düzenleme:
Script.js de arat fonksiyonu halen sorun oluşturuyor. Bunu Ürünleri listelediğin HTML dosyasına aktarman daha mantıklı

Hocam sorunum şu shop.html de ürünleri listeliyoruz. Listeledikten sonra ürünleri çekmem lazım Pro değişkenine çekemiyorum. Function veya foreach içinde çekiyorum. Ancak bu değişkeni dışarıya aktaramıyorum.


Burada ki Pro tanımsız kalıyor.

1661706400944.png
 

Technopat Haberler

Yeni konular

Geri
Yukarı