session ile yaptığım yerleri cookie ile değiştirirsem fazla birşey yapmadan hallolormu, sadece cookie tanımlaması sessiona göre farklı.
Herhalde bütün kodu tekrar yazmama gerek yok.
$_SESSION['cart'] yerine
$_COOKIE['cart'] olacak galiba
Şurada neden cookie kullanılması gerektiği anlatılmış.
https://www.webslesson.info/2018/05/simple-php-shopping-cart-using-cookies.html
Dediğin gibi o sırada başka birşey olur kapı çalar yada telefon dışarı gider yada yemek yemeye tekrar döndüğünde 1 saatlik çabası boş olur.
Buda kullanıcının siteden soğumasına sebep olabilir.
Aslında javascript ile de yaptım local storage ama cookie süre ayarlaması sepbebiyle daha uygun gibi.
Yani session da tutunca tarayıcı kapatıldığında sepet boşalıyor acaba sakıncası olur mu.
/*
önce olay dinleyicilerinin parent elementini tanımla
bu şu demek bu elementin içinde olan olay dinleyicilerine
bir şekilde yenisi eklenirse yada benzer bir değişiklik yapılırsa
yeni gelen elementte tanımlı click yada başka olay dinlemesini uygula
*/
const parent = document.getElementById("form1"); //bu durumda form olsun bir div de olabilir
//diyelim ki içinde ki check box yada submit işlemleri için olay dinleyicimiz var.
parent.addEventListener("click", ajaxFunction);
function ajaxFunction(e){
//
if(e.target && e.target.matches("yorum_gonder")){ //submit elementine ait id sınıf ta olabilir
javascript ajax işlemleri
}
}
/*
aslında bu örnekte buna gerek yok ama diyelim ki dinamik olarak yorumları 10 ar 10 ar
sayfaya çağırıyorsunuz yorum elementlerinin içinde beğen diye bir click var yani bir olay dinleyicimiz var demek.
Sayfaya sonradan içinde olay eventi olan element eklendğinde bunu innerHTML ile yaptığınızda içine yazdığınız o elemente ait bütün olay dinleyicileri yok olur.
Bunun önüne yukarıda ki gibi geçilebilir.
Başka çözüm yolları da yeşillendiren olursa yazsın.
Kullanıcıya hata yapma şansı bırakmadan güncelleme yaptırmalısın bu yüzden textarea içine objeyi string olarak yani text olarak koyman iyi fikir değil.
Bunun yerine her alan için ayrı input alanı luşturup
<label>1. taksit</label>
<input type="text" name="taksit[]" value="<?php echo $taktis1; ?>">
<input type="text" name="taksit[]" value="<?php echo $taktis2; ?>">
şeklinde olmalı.
Kaydettirirken de formda ki diğer verilerle beraber değişiklik yapılanlarıda yani hepsini birden alıp kaydettirebilirsin.
Formda ki verileri şu şeklide alacaksın
$new_arr = array();
foreach($_POST["taksit"] as $taksit_name => $tutar){
$new_arr[$taksit_name] = $tutar;
//Sonra :
$jsonUpdate = json_encode($new_arr);
bu şekilde bir sonuç (object) alırsın {"taksit1" : 100, "taksit2" : 50}
/*
Ve php ile veri tabanına kayıt
veriyi tutacağın alanı text olarak yapmalısın.
*/
Sonuç olarak teker teker değil her defasında kolonda ki bütün veriyi güncelleyecek.
Bunun için ajax kullanmalısın javascript ile başlayabilirsin.
İnnerHTML işlemi yaptığın elementin içinde ki javascript olay dinleyivileri (event'ler) çalışmaz.
Bunun yerine https://developer.mozilla.org/en-US/docs/Web/API/Element/insertAdjacentHTML burada ki gibi uygula.
justify_content : display özelliği flex olan element içinde ki ögeleri ortalama sağa sola yaslama gibi işlere yarar.
display:inline-block; ise elementi satır içi olarak soldan sağa doğru sıralar float right olursa sağdan sola sıralar.
Yani display block yaparsan element kaplayabildiği kadar yer kaplar inline-block yaparsan içieriği ne kadar ise o kadar genişler.
Farkettim ki yazarak zor bu iş youtube dan css derslerine bakmalısın.
Gelen bildirimler aynı sorya verilen cevaplar tek satırda gösterilip cevap sayısı yanına iliştirilebilir
kodlamalar ile ilgili butonlar konursa olabilir.
php tıklandığında markdown kodları hazır olarak çağırılabilir