动态添加表单,可以插入到sql表中

时间:2016-04-07 17:48:33

标签: javascript php sql database forms

寻找一个允许我动态添加另一个表单的解决方案,点击" save"将单独发送到SQL并在那里保存为一行。

为了更好地解释我在这里尝试实现的目标是: enter image description here

正如您所看到的,它是一个包含3个输入字段的简单表单。 目前,如果你点击" Opslaan" (保存),数据被发送到数据库并保存。这是代码:

for (auto i = 0; i < sOne; ++i)

我想添加的功能是能够点击&#34; +&#34;按钮,添加第二个表单(与第一个表单相同),然后是第3个,第4个等。这样我的客户端就可以同时向数据库添加多个项目。

编辑:

刚刚完成代码以动态添加额外的表单:

void print(int sOne, ...) {
    va_list arguments;
    va_start(arguments, sOne);

    for (auto i = 0; i < sOne; ++i) {
        cout << va_arg(arguments, const char*) << endl;
    }
    va_end(arguments);
}

现在我只需要能够在点击&#34; Save&#34;

时将所有额外添加的表单保存为新记录。

1 个答案:

答案 0 :(得分:1)

嘿我正在使用Jquery如果你不想使用jquery那么你可以找到alernative我只是试图想出跟踪你的问题

    <script>
var i = 0;
     $('#btn2').on('click',function(){
          i =i+1;
       var html = '"<div class="form-group">
              <label class="col-md-4 control-label" for="klantnummer">XYZ nummer</label>  
              <div class="col-md-4">
              <input id="textinput'+i+'" name="klantnummer[]" type="text" placeholder="hier het klantnummer" class="form-control input-md" required="">

              </div>
            </div>"';
       $('#appendUp').insertBefore(html) // Add a empty div where you want to append your html.

     });
    </script>

现在,当提交表单时,将使用表单提交新字段。

<强>更新

假设您的html添加了一个名称输入数组,并且您希望将所有名称存储在数据库列'名称'中。

你可以使用你的所有函数来逃避非法的char输入等,最后将数组内爆到一个字符串

<?php
 if(isset($_post('name')))
{
   $x = $post('name');
  $x = implode(',',$x);
}else{
$x = null;
}

//Now Save $x in your datatable if any extra coloumn are added then they would be stored or null will be stored.
?>

更新2

HTML

<input name = "productitem[0]" id= "productitem0"/> // this is your base form

现在,当您使用加号按钮

添加新输入字段时
var html = '<input name = "productitem[]" id= "productitem'+i+'"/>';

好了,现在你有一个名为productitem

的php服务器发送给你的数组
<?php
 //use Foreach loop
$x =$_POST['productitem'];
$y =$_POST['articles'];
 foreach($x as $key => $data){
   $sql = "INSERT INTO soldproducts (klantnummer, artikelnummer, prijs, tijd) VALUES ('$x[$key]','$y[$key]', '$prijs[$key]', CURRENT_TIMESTAMP)";

} 
?>