Php 如何动态添加另一个字段

Php 如何动态添加另一个字段,php,html,Php,Html,如何静态地添加元素,但在设计时不可见,然后在某些事件发生时动态地显示。 在这种情况下,我使用如下HTML代码 <input type="text" name="field_1"/> <input type="text" name="field_2"/> <input type="text" name="field_3"/> <input type="text" name="field_4" style="display:none"/> <in

如何静态地添加元素,但在设计时不可见,然后在某些事件发生时动态地显示。 在这种情况下,我使用如下HTML代码

<input type="text" name="field_1"/>
<input type="text" name="field_2"/>
<input type="text" name="field_3"/>
<input type="text" name="field_4" style="display:none"/>
<input type="text" name="field_5" style="display:none"/>
<a href="#">add another field</a>

第一次,字段4和字段5是不可见的,对吗?但当我单击“添加另一个字段”时,字段4和字段5应该可见

有什么建议吗

我不介意是否有人可以用PHP解决这个问题,也许这个问题就像FB一样,当你输入你的联系信息(你的电话号码)时,如果你只有一个电话号码,这意味着你不需要点击“添加另一个电话”,但如果你有两个或更多的电话号码,你可以点击它,字段文本将显示为你点击的数量

document.getElementById('field_4').display = 'inline'
这对你的目的应该有用

您可以在单击按钮时添加新元素,而不是显示旧的不可见元素

var index = 2;
document.getElementById('addBtn').addEventListener('click', function() {
    var inp = document.createElement('input')
    inp.setAttribute('type', 'text')
    inp.setAttribute('name', 'field_' + index)
    document.insertBefore(inp, document.getElementById('addBtn'))
    index ++;
})

首先,您不需要有这些隐藏字段。这不是“动态添加它们”


可以使用javascript实现这一点(因为不需要提交页面,所以效率更高)。你熟悉JQuery吗?那会把新元素放在链接后面。@crush哦,忘了这一点。现在更新索引从何而来?另外,中的
是一个保留字,不应该用作变量名。@好吧,我不会把所有的代码都给他。我假设他每次添加东西时都能计算出增量。
<input type="text" name="field_1"/>
<input type="text" name="field_2"/>
<input type="text" name="field_3"/>
<a href="#">add another field</a>
<a href="javascript:void()" onclick="addField(e)">add another field</a>
;(function) {
    var counter = 3; //This is set to the number of initial fields.

    function addField(e) {
        e = e || window.event; //Normalize the event.

        counter++; //Increment the counter.

        //Create the new element.
        var element = document.createElement("input");
        element.setAttribute("type", "text");
        element.setAttribute("name", "field_" + counter);

        //Insert it before your link.
        e.target.parentNode.insertBefore(element, e.target);
    }
 })();