Ben mantıksal olarak elimden bu açıklamaya çalışacağım. Temelde kullanıcıların kendi istihdam geçmişi girebilirsiniz sayede sitemde bir tesis var. Bu giriş alanları ile bir şeklidir. Şeyleri yapmak daha kolay ben bu giriş alanları klonlar ve kullanıcı aynı anda birden fazla kayıt girmek sağlayan bir jQuery işlevi var.
Yeni kayıtlar ekleyerek ederken kullanıcının her kaydının yanındaki 'kaldır' bağlantısını basabilirsiniz, bu durumda listeden bir kaydı kaldırmak isteyebilirsiniz.
HTML (1 Adet):
<div class="history-form-fields">
<div class="row">
<label for="History_0_type">Type</label>
<select name="History[0][type]" id="History_0_type">
<option value="">Select</option>
</select>
</div>
<div class="row">
<label for="History_0_name">Name</label>
<input type="text" name="History[0][name]" id="History_0_name" />
</div>
<div class="row">
<label for="History_0_year">Year</label>
<select name="History[0][year]" id="History_0_year">
<option value="">Select</option>
</select>
</div>
</div>
<input id="add" type="button" value="Add Another" />
JS:
<script type="text/javascript">
var counter = <?php echo $historyCount; ?>;
$('#add').click(function(){
var divCloned = $('.history-form-fields:first').clone();
divCloned.insertAfter('.history-form-fields:last');
initNewInputs(divCloned.children('.row'), ++counter);
});
$('.remove').live('click', function(){
$(this).parent().remove();
return false;
});
</script>
Yukarıdaki JS kodu, $historyCount
değişken benim PHP komut önceden ayarlanır:
$historyCount=isset($_POST['History']) ? count($_POST['History'])-1 : 0;
Sayfada birden fazla kayıt vardı ve bazı doğrulama hataları formu bu aynı kayıtları gösteren ekrana geldikten sonra, varsa Yani, örneğin formu, gönderilen zaman.
There is also a call to a function initNewInputs()
which is passed in the new
counter value. This is so that new form input elements can receive unique ID and NAME attributes (in the HTML code above you can see the integer indexes within the attribute values).
Bu tüm çalışma gayet iyi. Ben yaşıyorum sorun aşağıdaki senaryoda ise:
Kullanıcı yeni kayıtlarda ekleyerek başlar
- Tutanak 1 - Sayısı 0
- Tutanak 2 - Sayısı 1
- Tutanak 3 - Sayısı 2
- Tutanak 4 - Sayısı 3
- Kayıt 5 - Sayısı 4
Kullanıcı Kayıt 3 & kaldırır 4 (yani biz şimdi sadece 3 kayıtları var). Tutanak 5 şimdi Kayıt 3 ama aynı Sayısı değerini korumaktadır (4).
Kullanıcı daha sonra yeni bir kayıt ekler:
- Record 4 - Count 5
- Record 4 - Count 5
Kullanıcı mesaj formu - Form yeniden görüntülenmeden yüzden bazı doğrulama hataları vardır. PHP script 4 kayıtlarını aldığını belirler, böylece 3 sayılmasını ön-ayarlar.
Kullanıcı hataları tespit ederken, yeni bir kayıt eklemek için karar
- Kayıt 5 - Sayısı 4
4 sayfada zaten var olan sayım değeri ile bir rekor - sorun doğar yerdir. Yani şimdi zaten sayfada biri olarak aynı kimlik ve nitelik ADI değerleri ile giriş elemanlarını yarattı.
Bunu anlamak için biraz zor olduğunu biliyorum ama herhangi bir yardım takdir ediyorum. Bu büyük olasılıkla sayacı nasıl ayarlanmış değiştirilmesini gerektirecektir.