2016-04-13 26 views
1
Yani temelde

Ben aşağıdaki HTML form var:İki boyutlu bir HTML form girişleri

<form> 
    <div class="Question"> 
     <input name="question" type="text"></input> 

     <div class="alternatives"> 
      <input type="text" name="TextAlternative[]"></input> 
      <input type="text" name="TextAlternative[]"></input> 
     </div> 
     <a href="#\" class="newTextAlternative_click">New Alternative</a> 
    </div> 
    <a href="#\" class="newTextQuestion_click"></a> 
</form> 

Ben bir online anket uygulaması üzerinde çalışıyorum ve ben bir kullanıcıya birlikte bir dizi soru tanımlama yeteneği vermek istiyorum her soru için alternatifler dizisi.

newTextAlternative_click tıklatıldığında yeni bir alternatif giriş alanı oluşturur. TextAlternative [] alternatif girişleri adındaki parantez notasyonu sayesinde bir sorgunun tüm alternatiflerini bir dizi şeklinde talep edebilirim.

Başka bir Soru div oluşturduğunda sorun oluşuyor. Ben bir dizi olarak her soru için girdi talep edebilmek için istiyorum, bu yüzden aşağıdaki yapmaya çalıştım: Bu bana bir dizi olarak tanımlanan her soru için soru istemek için imkanı verir

<input name="question[]" type="text"></input> 

. Ancak şimdi alternatifler ile başım belada.

Question[i]Alternative[i] 

bunu böyle kod olarak eklemek zorunda olmadan: şu şekildedir:

Alternatifleri istemek için mümkün istiyorum

<input name="Alternative[0][]"></input> 

Bunun nedeni ben kullanıcıya sağlamalarıdır Alternatifler için aynı formdaki sorulardan birini tekrar silme yeteneği. Her defasında domı çevirmemeyi ve tüm dizi indekslerini değiştirmemeyi tercih ederim.

Şimdiden teşekkürler.

+0

Sorunuz nedir? Cevap [questionIndex] [alternativeIndex] 'gibi cevaplar alabilirsiniz. Sürekli bir dizin dizisine sahip olmanıza gerek yoktur. Öyleyse, silme, cevap dizisini yeniden dizileştirmek anlamına gelmez. Alternatif [0] [] 'yerine – macino

+0

yerine alternatif [0] []' e sahip olabilirsiniz, böylece yeni satırlar eklerken soru dizinini birleştirerek ad parçasını dinamik hale getireceksiniz. Bu şekilde tek bir dizi ile oynamak zorunda kalacaksınız ve her soru için alternatiflerinin bir dizi olacak. –

cevap

0

Bunu javascript kullanarak çözdünüz. Gönderme sırasında mevcut alternatifler üzerinde çalışan bir komut dosyası alıyorum ve arka uçta işlemeyi kolaylaştırmak için bir JSON nesnesine aktarıyorum.