寻找一个允许我动态添加另一个表单的解决方案,点击" save"将单独发送到SQL并在那里保存为一行。
正如您所看到的,它是一个包含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;
时将所有额外添加的表单保存为新记录。答案 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)";
}
?>