Arkadaşlar öncelikle aklımı karıştıran bir durum var mantığımı pek kullanamadım sanırsam. Hazırladığım herşey kendime ait ancak bu şekilde bir örnek yada mantık açıklaması bulamadım sayılır.
Öncelikle yapmak istediğim bir portalda db'ye kayıt işlemi öncelikle 1 sayfada kategori ve alt kategoriler seçilecek... devam butonu ile diğer eklemeler sayfa sayfa gelicek yalnız db'de sadece tek kayıt üzerinden devam butonları ile satır dolucak... örneğin emlak sistemi düşünelim ...
Satılık/Kiralik Seçildi buda db'de ilanlar tablosunda bir satir açıcak, devam butonu ile ilan'ın diğer özellikleri girilecek bu şekilde bir örnek dosya yahut mantık açıklarmısınız.
2.si ile ajax ile sayfa içinde sayfa değişimi yani sağ sol üst alt sabit.... bu kısımlardan linklere tıklandığında orta taraf sadece ajax ile sayfa değişimine uğrayacak... frame kullanmadan div ile yapilabilir sanırsam ajax örneğini asp'ye uyarlanmış şekilde bulamadım.
Adım adım postlama
4
●589
- 03-07-2009, 23:52:401. verilerin tamamını açtırmadan tabloya veri ekleme zaten. adam kayıt yaparken sonra vazgeçebilir (ve ne gerek var buna). önce ilk aşamadaki formunu oluşturacaksın. daha sonraki sayfada ikinci bi formun olduğunu düşünelim. bi önceki sayfanın verilerini request.form ile alıp ister bunları session olarak (ki tavsiye etmem), istersen de ikinci form sayfanda hidden input oluşturarak (ki bunu tavsiye ederim) alabilirsin. misal örnekle gidelim:
form1 sayfamız bu olsun :
<form method="post" action="form2.asp">
adın: <input type="text" name="form1_1">
soyadın: <input type="text" name="form1_2">
</form>
________
şimdi form2.asp de başka bi formumuz var, ama önceki verileri de istiyoz:
<form method="post" action="form3.asp">
falan: <input type="text" name="form2_1">
filan: <input type="text" name="form2_2">
<input type="hidden" name="form1_1" value="<%=request.form("form1_1")%>">
<input type="hidden" name="form1_2" value="<%=request.form("form1_2")%>">
</form>
________________
bu şekilde istediğin kadar ileri git, şunu ekle bunu ekle diye form sayfaları yapabilirsin. bunları yaptırırken veritabanına bulaşma. en sonuncu form sayfanda, bütün verileri aldıktan sonra komple hepsini birden veritabanına eklersin. hem eleman vazgeçerse boşu boşuna kayıt açmamış olursun, hem de gereksiz kayıt açma daha yavaş işleme neden olur. (bi de, dediğim gibi ne gerek var. ama yarım kalmış formları kullanıcı id ile sonradan tamamlatmak istersen, pasife alan bi tablo sütunu ekleyip sonradan devam ettirtebilirsin de, o da senin bileceğin iş, yani kullanım amacına göre değişir tabi ki.)
inşallah mantığını anlatabildim. tabi kodları kabaca yazdım, güvenlik ayarları vs. onları yaptığını farz ediyorum. ayrıca bu verileri session olarak, querystring olarak (ki ikisini de tavsiye etmem, hele querystringi asla yapma) veya veritabanına bulaşacaksan, o sayfayı kaydettirip son id alarak diğer sütunlardaki verileri tamamlama şeklinde falan da yapabilirsin. ama ben böyle yapıyom, daha güvenli, daha hızlı, daha da basit hemde.
edit: 2. sorunu unutmuşum. onun için jquery load kullanabilirsin. çok basittir. jquery api sayfasına bakarsan rahatça yapabilirsin. ilgili link için bi click fonksiyonu oluşturup load edeceksin. baya baya basit bişey o. jquery doc sayfasına bak. hemen kaparsın. - 04-07-2009, 03:54:05inputun adı neyse, veritabanındaki istediğin sütuna o değeri girdiriyosun.Calixtus adlı üyeden alıntı: mesajı görüntüle
tabi input isimlerini, sütun isimlerine benzer adlandırırsın, karışmamış olur. misal burda ben lafın gelişi form1_1 yaptım, (request formdaki, formla alakası yok, önemli olan name kısmı) bu örnekte değeri almak istersen:
kayitgir("ad") = request.form("form1_1")
diyeceksin.
veya <input name="elma" >... bile diyebilirsin, bu durumda:
kayitgir("ad") = request.form("elma")
arkadaşın dediği get metoduyla da yapabilirsin tabi. veya bütün formları aynı sayfaya koyup, bir sonraki aşama için çağırabilirsin de, (sub ile farklı atraksiyonlara da girebilirsin.)
ama dediğim gibi querystring ile sonraki sayfaya göndermek güvenlik için iyi olmaz, yani adres satırında bu değerlerin gözükmesini tavsiye etmem. sitenin adres satırına direk bunlar yazılıp saldırı yapılarak siteyi ve veritabanını şişirtirler vss..
tabi herkesin kendi yolları da olabilir. aslında ilerde bunlar için bi fonksiyon yazıp işlerini kolaylaştırabilirsin.