我正在为Joomla使用流行的ChoronoForm插件。我创建了一个包含动态字段的表单。 javascript函数用于添加多个“项目”。用户单击“添加另一个项目”按钮,将重新显示项目字段,以便插入其他“项目”。与此网站上的表单类似http://www.unclesmoney.co.uk/home3.php(填写“项目详细信息”部分,然后单击“添加其他项目”)。提交表单时,信息将通过电子邮件发送。问题是,仅发送最后插入的项目,而忽略其他itens(未发送),例如如果我只填写2个或更多项目的表格,则会发送最后填写的项目的详细信息。假设我必须编写一些php或javascript来将这些值传递给html模板,还是有更简单的方法?无论哪种方式,我都可以做一些关于如何做到这一点的指针。这个论坛上有一个类似的主题,这是一个很好的帮助,但它没有显示如何修改HTML模板。感谢
<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);
}
答案 0 :(得分:0)
Chronoforms在电子邮件模板中进行简单替换以填写表单值。除非你有一些代码来操纵它,否则只需要一个值。您需要做的是在“表单代码”选项卡中的“提交代码 - 发送电子邮件之前”区域中添加一些PHP。快速循环遍历所有额外字段,将它们组合到Chronoforms期望的单个变量名称中,可以解决您的问题。