Halı saha rezervasyon sitesi

ömerfaruk1

Centipat
Katılım
20 Eylül 2022
Mesajlar
10
Daha fazla  
Cinsiyet
Erkek
İlk olarak sayfanın görüntüsünü paylaşayım.
Sayfanın görüntüsü bu şekilde. Tarih seçtiğimde o gün ve tarihi üst sütunda yazıyor ve butona tıkladığımda bir modal açılıyor bu modalda ad soyad telefon numarası istiyor bunları yazıp rezervasyon yap'a bastığımda ise veri tabanında tabloya atıyor ama tablodan seçtiğim tarihte değil üstte tarih seçin yazan yerdeki tarihi alıyor ve veritabanına ekliyor. Bunu nasıl düzeltebilirim?

Ekran görüntüsü 2024-05-14 130646.png


Ekran görüntüsü 2024-05-14 131818.png


Ekran görüntüsü 2024-05-14 131830.png


Bunlar da veri tabanı tablo görüntülerim.
Kodlar da bu şekilde yardımcı olur musunuz?

PHP kodlarım bunlar da.
 

Dosya Ekleri

  • deneme html.txt
    11,5 KB · Görüntüleme: 10
  • deneme php.txt
    1,7 KB · Görüntüleme: 8
Son düzenleyen: Moderatör:
Zaten öyle olması gerekmiyor mu? Kullanıcı sol üstten tarih seçip, açılan modalda bilgilerini doldurup rezervazsyon yapmayacak mı? "tablodan seçtiğim tarih" ifadenizle neyi kastediyorsunuz yada son kullanıcı ile olan ilişkisi ne? Web programlamaya çok aşina değilim ama sorunun mantığını anlama adına merak ettim.
 
Zaten öyle olması gerekmiyor mu? Kullanıcı sol üstten tarih seçip, açılan modalda bilgilerini doldurup rezervazsyon yapmayacak mı? "tablodan seçtiğim tarih" ifadenizle neyi kastediyorsunuz yada son kullanıcı ile olan ilişkisi ne? Web programlamaya çok aşina değilim ama sorunun mantığını anlama adına merak ettim.
sol üstten tarih seçiyorum o tarihe göre açılan tabloda seçtiğim günün bulunduğu hafta çıkıyor o haftadan istediğim günü ve saate karşılık gelen butona bastığımda modal açılıyor
 

Saat hakkında​

İstekte gönderdiğiniz saat verisi time, 17:00 - 18:00 biçiminde. İsteği işlerken bu veriyi direkt böyle alıp veri tabanına yerleştirmeye çalışıyorsunuz. MySQL'de doğru olmayan bir zaman verisi eklenmeye çalışıldığında veri sıfırmışçasına işlem yapılıyormuş. start_time'da gördüğümüz o 00:00:00'ların nedeninin bu olduğunu düşünüyorum.

Bunun önüne geçmenin birkaç yolu var. MySQL, saat verisi olarak hh:mm biçiminde veri kabul edebiliyormuş, dolayısıyla çok bir iş yapmaya gerek yok neyse ki. Benim önerdiğim, istekte start_time ve end_time diye iki ayrı veri göndermek:
JavaScript:
var time = selectedButton.getAttribute('data-time');
const [startTime, endTime] = time.split(" - ");
...
formData.append("start_time", startTime);
formData.append("end_time", endTime);

PHP kodunuzu da uygun şekilde düzenlersiniz.

Tarih hakkında​

İstekte gönderdiğiniz ve sonrasında veri tabanına yazdığınız tarih verisini direkt tarih girdisinden alıyorsunuz:
JavaScript:
var dateInput = document.getElementById('date').value;
...
formData.append('date', dateInput);

Sonuç gayet beklendik yani, rezervasyon_tarihi sütunundaki değerler HTML'deki tarih girdisini yansıtıyor.

Bunu düzeltmek için butondaki data-day'i data-date olarak değiştirebilirsiniz çünkü zaten PHP'de, istekteki day verisini kullanmıyorsunuz. Sonrasında istekteki date verisini dateInput'tan değil butonun data-date'inden alırsınız:
JavaScript:
// button.setAttribute('data-day', days[j - 1]);
// Üsttekinin yerine alttakini yazın:
button.setAttribute('data-date', dayDate);
// dayDate için bir önceki for döngüsündeki hesabınızı kullanabilirsiniz.

Önerdiğim değişiklikler başka sorunlara yol açabilir çünkü kendim denemedim.
 
Soru(n) anlaşıldı, dediğim gibi çok bildiğim bir alan değil ama kaydettiğiniz tarihin alındığı yer html dosyasındaki
function makeReservation() metodunda
var dateInput = document.getElementById('date').value; tanımı. Yani tasarım zaten bu şekilde yapılmış ve kod görevini yapıyor gibi görünüyor. Buradan yürüyün bence.
 

Yeni konular

Geri
Yukarı