我使用流行的Joomla的ChoronoForm插件。我創建了一個包含動態字段的表單。 JavaScript函數用於添加多個「項目」。用戶點擊按鈕「添加另一個項目」,並且項目字段被重新顯示,以便他們插入額外的「項目」。類似於這個網站上的表格http://www.unclesmoney.co.uk/home3.php(填寫項目細節部分並點擊「添加其他項目」)。當表單被提交時,信息通過電子郵件發送。問題是,只發送最後插入的項目,而其他itens被忽略(不發送),例如如果我只填寫2個或更多項目的表格,則會發送填寫的最後一個項目的詳細信息。假設我必須編寫一些php或javascript將這些值傳遞給html模板,還是有更簡單的方法?無論哪種方式,我可以做一些關於如何做到這一點的指針。在這個論壇上有一個類似的線程,這是一個很大的幫助,但它不顯示如何修改html模板。謝謝將動態字段添加到表單(Chronoform)
<div class="form_element cf_dropdown">
<label class="cf_label" style="width: 150px;">Item Type:</label>
<select class="cf_inputbox validate-selection" id="select_19" size="1" title="" name="select_19">
<option value="">Choose Option</option>
<option value="Option 1">Option 1</option>
<option value="Option 2">Option 2</option>
<option value="Option 3">Option 3</option>
<option value="Option 4">Option 4</option>
<option value="Option 5">Option 5</option>
</select>
</div>
<div class="cfclear"> </div>
</div>
<div class="form_item">
<div class="form_element cf_textarea">
<label class="cf_label" style="width: 150px;">Detail</label>
<textarea class="cf_inputbox required" rows="3" id="text_2" title="Please enter Item Detail" cols="30" name="text_2"></textarea>
</div>
<div class="cfclear"> </div>
</div>
<div class="form_item">
<div class="form_element cf_fileupload">
<label class="cf_label" style="width: 150px;">File</label>
<input class="cf_fileinput cf_inputbox" title="" size="20" id="file_3" name="file_3" type="file" />
</div>
<div class="cfclear"> </div>
</div>
<div class="form_item">
<div class="form_element cf_textbox">
<label class="cf_label" style="width: 150px;">File 2</label>
<input class="cf_inputbox required validate-number" maxlength="150" size="30" title="Must contain a value" id="text_4" name="text_4" type="text" />
</div>
<div class="cfclear"> </div>
</div>
</div>
<span id="writeroot"></span>
<input type="button" value="Add Another Item" onclick="moreItems()" />
.....
Javascript
var counter = 0;
function moreItems() {
counter++;
var newFields = document.getElementById('readRoot').cloneNode(true);
newFields.id = '';
newFields.style.display = 'block';
var newField = newFields.childNodes;
for (var i=0;i<newField.length;i++) {
var theName = newField[i].name
if (theName)
newField[i].name = theName + counter;
}
var insertHere = document.getElementById('writeroot');
insertHere.parentNode.insertBefore(newFields,insertHere);
}
布倫特,感謝您的回覆。正如你可以看到我正在使用JavaScript這是客戶端,除非我誤會,我無法引用服務器端PHP內部的JS變量。如何獲得對這些「額外」變量的引用,以便將它們放入循環中?一個例子將不勝感激,因爲我有點卡住了。 – Apprentice 2011-01-30 17:49:14