php foreach循环并在表单中添加更多按钮
Posted
技术标签:
【中文标题】php foreach循环并在表单中添加更多按钮【英文标题】:php foreach loop and addmore button in a form 【发布时间】:2016-03-10 04:21:45 【问题描述】:您好,我正在使用表单向用户添加体验,其中我有一个添加更多按钮,该按钮添加更多(克隆)内容,用户可以获得更多字段来添加体验
我正在使用此代码来实现此目的
<div id="append_palllsjjs"><div class="full_exp_9092k" id='duplicater'>
<div class="full_one_row_009so">
<div class="obe_left_dibbhsy78">
<div class="header_009sos00dd_d">
Company Name <span>*</span>
</div>
<div class="maind_TAxefst67s77s">
<input type="text" name="comp[]" required placeholder="company Name" class='cname_990s_EXp'/>
</div>
</div><div class="obe_left_dibbhsy78">
<div class="header_009sos00dd_d">
Department Name <span>*</span>
</div>
<div class="maind_TAxefst67s77s">
<input type="text" name="dept[]" required placeholder="Department Name" class='cname_990s_EXp'/>
</div>
</div>
</div><div class="full_one_row_009so">
<div class="obe_left_dibbhsy78">
<div class="header_009sos00dd_d">
From Date <span>*</span>
</div>
<div class="maind_TAxefst67s77s">
<input type="date" data-initial-day="1" data-initial-year="2011" data-initial-month="9" class='TEx_About_allihh' name="exsdate[]" required/>
</div>
</div><div class="obe_left_dibbhsy78">
<div class="header_009sos00dd_d">
To Date <span>*</span>
</div>
<div class="maind_TAxefst67s77s">
<input type="date" data-initial-day="1" data-initial-year="2012" data-initial-month="10" class='TEx_About_allihh' name="exedate[]" required/>
</div>
</div>
</div><div class="full_one_row_009so">
<div class="obe_left_dibbhsy78">
<div class="header_009sos00dd_d">
Profile <span>*</span>
</div>
<div class="maind_TAxefst67s77s">
<input type="text" name="profile[]" required placeholder="Profile" class='cname_990s_EXp'/>
</div>
</div><div class="obe_left_dibbhsy78">
<div class="header_009sos00dd_d">
</div>
<input type="button" name="addmore" value="Add More" class='button small white' onclick='duplicate();'/>
</div>
</div>
</div></div>
js
var i = 0;
var original = document.getElementById('duplicater');
function duplicate()
var clone = original.cloneNode(true); // "deep" clone
clone.id = "duplicetor" + ++i; // there can only be one element with an ID
original.parentNode.appendChild(clone);
这里我希望添加时的新字段应该为空(现在它在文本框中显示具有预填充值的相同内容)
第二个问题是我想为数组的每个值插入表中的数据,我知道这可以通过 foreach 循环进行
$comps=$_POST['comp'];
$profile=$_POST['profile'];
$exedate=$_POST['exedate'];
$exsdate=$_POST['exsdate'];
$dept=$_POST['dept'];
if(empty($comps) || empty($profile) || empty($exedate) || empty($exsdate) || empty($dept) )
echo 'Please Fill all the fields marked with *';die;
foreach($comps as $value)
// insert into tablename (field1,field2,field3,...) values ('comp1','dep1','profile1'....)
// 插入与数组中元素数量一样多的字段
请用这个 php 代码建议我如何使用 foreach 循环,以便我可以插入与数组中元素数量一样多的行,并且在另一个数组中具有相应的值
请注意,这个问题有两个问题,请随时为任何问题提供帮助。
一个是 php,另一个是 ajax
【问题讨论】:
请简要说明 您想使用纯 javascript 或使用 jQuery 来解决此问题? @SunnyS.M 任何事情都会有帮助 @NanaPartykar 先生,我想为数组的每个值将 vales 插入数据库,并匹配另一个数组中的对应值 您的第一个问题已解决。请查看我的回答 【参考方案1】:使用以下代码清除克隆表单:
注意:必须在文档中添加 jquery 文件
<script src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
<script>
var i = 0;
var original = document.getElementById('duplicater');
function duplicate()
var clone = original.cloneNode(true); // "deep" clone
i = ++i;
clone.id = "duplicetor"+ i; // there can only be one element with an ID
original.parentNode.appendChild(clone);
clearCloneForm(clone.id);
function clearCloneForm(id)
var divId = '#'+id;
$(divId).find("input[type^='text'], input[type^='date']").each(function()
$(this).val('');
);
</script>
【讨论】:
您好先生,您能帮我如何在此处添加删除按钮 没问题的姐姐..乐于助人 现在在办公室有很多工作......我想出了如何解决, 您好 Sonam 更改已应用,请检查新的答案代码,这是删除特定表单部分的一个问题,需要单击两次。我稍后会解决这个问题。 两次点击问题也已修复...请现在检查代码,它可以根据您的要求正常工作..【参考方案2】:这是您的新要求的代码:
如果用户想要删除表单块部分用户,则添加删除按钮 可以轻松:
<script src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
<script>
var i = 0;
var original = document.getElementById('duplicater');
function duplicate()
var clone = original.cloneNode(true); // "deep" clone
i = ++i;
clone.id = "duplicetor"+ i; // there can only be one element with an ID
original.parentNode.appendChild(clone);
addButton(clone.id,i);
clearCloneForm(clone.id);
function clearCloneForm(id)
var divId = '#'+id;
$(divId).find("input[type^='text'], input[type^='date']").each(function()
$(this).val('');
);
function addButton(id,ii)
var divId = '#'+id;
$(divId).append('<input type="button" value="Remove" class="button small white" id="'+ii+'" onclick="rBlock('+ii+')" />');
function rBlock(ii)
$('#'+ii).on('click', function(e)
var parentDiv = $(this).parent();
if(parentDiv.attr('id') !== ii)
parentDiv.remove();
);
$('#'+ii).trigger( "click" );
</script>
【讨论】:
非常感谢您的所有努力。 你是我谈过的最好的人之一 乐于助人......上帝赐给我们知识,我们必须帮助他人......我们总是向他人学习...... 非常感谢您的提问以上是关于php foreach循环并在表单中添加更多按钮的主要内容,如果未能解决你的问题,请参考以下文章
如何在单页中使用 php 从 while 循环中生成多个读取更多按钮?