2013-06-27 29 views
1

我有一個頁面,我要生成的表單輸入。附加<input>不工作

我這樣做與jQuery:

function getval() { 

    $('#UploadForm').empty(); 

    var limit = $("#GalleryCount").val(); 

    for(var i = 1;i<=limit;i++) { 

     $('#UploadForm').append('<div class="imgOrderAdmin"><label for="file'+i+'">Image '+i+'</label><input type="file" name="file'+i+'" value="file'+i+'" /></div>'); 
    } 
} 

元素也被添加到編號#UploadForm但當形式sendt,他們沒有得到擦肩而過,DIV,它的工作原理,當我加入費爾德到HTML頁面靜態,因爲我所用JS生成的完全相同的副本。

PHP:

$i = 1; 
while (!empty($_FILES['file'.$i]['name'])) { 

    echo $_FILES['file'.$i]['name']; 
    $i++; 
} 

HTML表單propertise:

<form class="form-horizontal well" action="postAction.php" method="post" enctype="multipart/form-data"> 
+2

分別是你'#UploadForm'?新的輸入但在表單標籤 – Sergio

+0

之間添加的是在結束之前標記是 –

+0

那些不是文件.....「文件」+我不包含任何擴展 – KyleK

回答

1

顯然:

$('<div class="imgOrderAdmin"><label for="file'+i+'">Image '+i+'</label><input type="file" name="file'+i+'" value="file'+i+'" /></div>').appendTo('#UploadForm'); 

OR

$('form#UploadForm').append('<div class="imgOrderAdmin"><label for="file'+i+'">Image '+i+'</label><input type="file" name="file'+i+'" value="file'+i+'" /></div>'); 

應該可以工作。

通過在'#UploadForm'之前添加'表單',確保輸入實際上被添加到表單中,而不僅僅是表單外的頁面。

1

由於安全原因,瀏覽器不允許value屬性的編程性賦值,input元素的值爲type="file"

想象一下,如果這是可能的。惡意的JavaScript能夠從用戶計算機上傳(或者至少嘗試上傳)任意文件。

0

,我認爲它會更容易使名稱的數組name="file[i]"

$('#UploadForm').append('<div class="imgOrderAdmin"><label for="file'+i+'">Image '+i+'</label><input type="file" name="file['+i+']" /></div>'); 

,並在PHP

for($i=1;$i<=count($_FILES['file']);$i++){ 
    if(!empty($_FILES['file'][$i]['name'])) { 
    echo $_FILES['file'][$i]['name']; 
    } 
}