Javascript kullanarak dinamik form öğesi ekle -

4 Cevap php

Düzenleme: Ben sadece sıfırdan başlayarak sorunu giderildi. Y'alls zaman harcamak için üzgünüm. Bunu meyilli hissediyorum kapatmak için oy verin.

Ben giriş alanları javascript ile eklendiğinde göndermek için bir form gerçek verileri alma konusunda sorun yaşıyorum. Alanları göstermek, ve ben server tarafında bir var_dump (fieldname) ne zaman doğru yerde, ama hiçbir şey gösteriyor. Live HTTP başlıklarıyla teftiş tarayıcı dinamik olarak eklenen form alanları sunmak için çalışıyor olmadığını söylüyor.

Ben bir şekilde forma benim dinamik olarak oluşturulan formu girişleri "eklemek" gerekiyor mu?

Benim kod:

HTML

<form id="att_form" method="post" name="add_attachments" enctype="multipart/form-data" action="#">
<-- below input to prove form submits, just not the dyn added elements -->
<input name="data[one]" type="text" />
<div id="add_fields"></div>
<input type="submit" />
</form>

Javascript

function addFormField()
{
 var id = 1;
 var htm = "<p id='row" + id + "'><input type='text' size='20' name='txt[]' id='txt" + id + "' /></p>";
 $("#add_fields".append( htm );
}

Ben formu gönderdiğinizde, benim giriş verileri [bir] bir POSTd değer olarak gösterir, ama addFormField (ilave olanlar) yok adlandırılmış. Onlar doğru yerde, HTML, sırıtmak, ama sonrası yok. Ben göndermek için almak için benim form elemanı için bir çocuk olarak eleman eklemek gerekir mi?

Ben özellikle formu çocuğa veri ekleme fikri var nerede http://stackoverflow.com/questions/312605/submit-form-input-fields-added-with-javascript, hangi gördüm, ama bu benim CSS bazı yeniden yapılanma gerektirir. Yani, ben yukarıdaki kodu yapabileceğiniz basit bir şey olduğunu umuyorum.

Şimdiden teşekkürler!

edit: yazım hataları sabit, ama hala çalışmıyor. O çalışıyor ben, yukarıda SO linke tartışılan kütüphane ücretsiz JS yöntemini kullanmaya karar verdim. Olsa yardım için teşekkürler!

4 Cevap

Yazım hataları bir sürü kodunuzu vardı. Örneğin, jquery için seçici etiketi kapatın vermedi.

You put $("#add_fields".append( htm );

Should have been $("#add_fields").append( htm );

Eksik parantez dikkat edin.

Ama senin sorunun PHP üzerinden değerlerine erişmek için çalışıyoruz nasıl esas yatıyor inanıyoruz. Ben sadece bir test sayfanızda kaynak koymak ve doğru değerlere erişmek eğer hepsi çalışır.

<?php
foreach ($_REQUEST['txt'] as $printme) 
	echo $printme."<br/>";
?>

Yukarıdaki kaynak çalışıyor.

there is 2 typos in your code: htm instead of html

ve add_fields / add_files

Gerçek kod mı?

Eğer öyleyse, .. giriş etiketi ve p etiketi kapatın vermedi belki formu onları görmezden ..

var htm = "<p id='row" + id + "'><input type='text' size='20' name='txt[]' id='txt" + id + "' /></p>";

Eğer / eklenmez ekleyerek veya bazen bu form dışında yerleştirecektir sonra html form alanları yerleştirmek için innerHtml kullanırken zaman, formun bir parçası olarak göreceksiniz ama içten değil.

Bu sorunu gidermek için form=myForm gibi yayımlandı girişi ile form özniteliği eklemek için, ve myForm form kimliği olmalıdır gerekir.