我如何创建一个do ... while循环(或者如果还有更好的方法可以解决这个问题 - 请提供建议),以获取可能包含其他信息的表单?
背景 - 我有一张表格可以接受用户对特定地点(例如地下室)的评估。每个表单只使用一个位置,这很好用,并提交到我的数据库没有问题。
现在我想通过"添加新位置"来增强此表单。按钮。我(显然)不想创建新页面,而是一个可以存储第一个位置的循环,保存它(我知道可以用会话变量完成),然后清除位置2,3的字段,4等。
我的困惑在于按钮的功能。这是什么类型的按钮?使用new_loc[]
等唯一身份重置?
然后当我把它写成do ... while循环时,我应该这样做:
<?php
do {
all my form fields
} while (some condition that looks for the button submit);
?>
好的,所以我创建了一个简单的JS,可以&#34;处理&#34;此
var counter = 1;
var limit = 5;
function addInput(locInformation){
if (counter == limit) {
alert("You have reached the limit of adding " + counter + " locations");
}
else {
var newdiv = document.createElement('div');
newdiv.innerHTML = "Entry " + (counter + 1) + " <br><br><input type='text' name='location[]'>";
document.getElementById(locInformation).appendChild(newdiv);
counter++;
}
}
现在问题是JS将添加1个新字段 - 有关如何向JS添加大量HTML的任何建议吗?我尝试将所有字段添加到JS中,并获得了大量未封闭的字符串错误。
答案 0 :(得分:0)
首先,您的表单必须action="" method="post"
然后将此php添加到您的页面:
session_start();
if (isset ($_POST['NameOfSubmitButtonInsideForm'])) {
if (!isset ($_SESSION['sessionName'])) {
$_SESSION['sessionName'] = 1
}
for ($i = 0; $i <= $_SESSION['sessionName']; $i++) {
echo 'some html code like a form with a input that has
<input type="submit" name="submit- . $i .'EndInputTag>';
};
}
因此,这将循环用户点击按钮的次数,您可以根据该数字回显html代码,或者您需要在循环中做什么。
答案 1 :(得分:0)
好的,我已经弄明白了。感谢Marc B建议使用JS。
按钮的HTML
<input style="margin-left:5px;" class="btn btn-primary" type="button" value="Add Additional Location" onClick="addInput('locInformation');">
<强> JS 强>
var counter = 1;
var limit = 5;
function addInput(locInformation){
if (counter == limit) {
alert("You have reached the limit of adding " + counter + " inputs");
}
else {
var newdiv = document.createElement('div');
newdiv.innerHTML = "<h3>Location " + (counter + 1) + "</h3>" + document.getElementById('additionalLoc').innerHTML;
document.getElementById(locInformation).appendChild(newdiv);
counter++;
}
}
最后是新的locInformation
内容:
<div id="additionalLoc" language="text">
huge block of HTML with additional fields
</div>