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 循环进行

php

 $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 循环中生成多个读取更多按钮?

获取具有2个或更多条件的foreach循环的值

PHP / MYSQL 插入数组 Foreach 循环

Powershell表单 - 使用按钮暂停循环

使用 foreach 循环添加每列的总和并在表格底部显示每个总计

使用单选按钮使用Foreach循环禁用下拉菜单