JS用按钮添加表单字段

时间:2016-10-04 18:18:27

标签: javascript php

我如何创建一个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中,并获得了大量未封闭的字符串错误。

2 个答案:

答案 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>