使用javascript获取最后添加的字段数

时间:2013-02-01 21:38:15

标签: php javascript jquery html

我制作了一个表单,您可以通过单击按钮添加更多字段。每次点击一个按钮,它都会在后面创建一个数字更大的新字段。我用jquery做这个,我需要用php获得最高的数字。 所以,如果我有auto_part1和auto_part2,我需要用PHP获得2。

这是我的HTML:

<div id="parts">
    Part
    <input type="text" id="auto_part" name="auto_part" />
                <br />
    Description
    <input type="text" id="auto_description" name="auto_description" />
                <br />
</div>
    <a href="#" id="addField">Add another part</a>

jQuery函数:

$(function() {
var scntDiv = $('#parts');
var i = $('#parts input').size() + -1;

$('#addField').on('click', function() {
    $('<br /><span>Part</span> <input type="text" id="auto_part'+i+'" name="auto_part'+i+'" /><br />').appendTo(scntDiv);
    $('<span>Description</span> <input type="text" id="auto_description'+i+'" name="auto_description'+i+'" /> <br />').appendTo(scntDiv);
    i++;
    return false;
});

$('#remScnt').on('click', function() { 
    if( i > 2 ) {
            $(this).parents('p').remove();
            i--;
    }
    return false;
});
});

7 个答案:

答案 0 :(得分:3)

创建隐藏的输入字段:

<input type="hidden" id="row_count" name="row_count" value="">

onsubmit执行:

$('#row_count').val(i);

答案 1 :(得分:0)

如果我没有错,请使用堆栈溢出搜索..

在这里你可以找到一种方式..

Passing jQuery variable to PHP on the same page?

答案 2 :(得分:0)

Presumaby这是一种最终提交的形式?如果是这样,每次添加新的部分字段时,如何使隐藏字段增加。然后当它被发送时,PHP就可以抓住它。

答案 3 :(得分:0)

添加隐藏字段(<input type="hidden" name="added_counter" id="added_counter" value="0" />),使用递增/递减函数($('added_counter').val(i);)维护其值,然后使用PHP在处理表单提交期间获取隐藏字段的值。

HTML:

<div id="parts">
    Part
    <input type="text" id="auto_part" name="auto_part" />
    <br />
    Description
    <input type="text" id="auto_description" name="auto_description" />
    <br />
</div>
<input type="hidden" name="added_counter" id="added_counter" value="0" />
<a href="#" id="addField">Add another part</a>

jQuery的:

$(function() {
    var scntDiv = $('#parts');
    var i = $('#parts input').size() + -1;

    $('#addField').on('click', function() {
        $('<br /><span>Part</span> <input type="text" id="auto_part'+i+'" name="auto_part'+i+'" /><br />').appendTo(scntDiv);
        $('<span>Description</span> <input type="text" id="auto_description'+i+'" name="auto_description'+i+'" /> <br />').appendTo(scntDiv);
        i++;
        $('added_counter').val(i);
        return false;
    });

    $('#remScnt').on('click', function() { 
        if( i > 2 ) {
                $(this).parents('p').remove();
                i--;
        }
        $('added_counter').val(i);
        return false;
    });
});

然后,当您将表单提交给PHP时,PHP可以获取新的added_counter隐藏字段的值。

答案 4 :(得分:0)

计算发布值的数量以获得最高数字。我将数据作为数组发布,但您不必这样做。

$('<br /><span>Part</span> <input type="text" id="auto_part'+i+'" name="parts['+i+'][name]" /><br />').appendTo(scntDiv);
$('<span>Description</span> <input type="text" id="auto_description'+i+'" name="parts['+i+'][description]" /> <br />').appendTo(scntDiv);


$parts=isset($_POST['parts'])?$_POST['parts']:array();
$highest_number=count($parts);

答案 5 :(得分:0)

如果您更改了为添加的输入字段命名的方式,该怎么办?而不是使用:      auto_part + i 使用     auto_part []

与auto_description相同,将其命名为auto_description []。这样他们将被php视为数组,您需要做的就是迭代数组。这对你有用吗?

答案 6 :(得分:0)

添加您的html表单:

<input type="hidden" id="count" value="0"/>

在onclick事件中添加你的javascript:

$('#count').val(i);

然后你可以在php中获得你想要的值作为字段数的值。