0

我制作了一个表单,您可以通过单击按钮添加更多字段。每次单击按钮时,它都会创建一个新字段,其后面的数字更高。我用 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;
});
});
4

7 回答 7

3

创建一个隐藏的输入字段:

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

onsubmit做:

$('#row_count').val(i);
于 2013-02-01T21:41:42.987 回答
0

如果我没记错请也使用堆栈溢出搜索..

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

在同一页面上将 jQuery 变量传递给 PHP?

于 2013-02-01T21:41:18.473 回答
0

大概这是最终提交的形式?如果是这样,那么每次添加新的部件字段时,隐藏字段都会增加。然后当它被发送时,PHP 就可以抓住它。

于 2013-02-01T21:41:39.773 回答
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 隐藏字段的值。

于 2013-02-01T21:42:37.110 回答
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);
于 2013-02-01T21:49:36.853 回答
0

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

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

于 2013-02-01T21:53:12.133 回答
0

在您的 html 表单中添加:

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

在 onclick 事件中添加您的 javascript:

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

然后你可以在php中获取你要找的值作为字段计数的值。

于 2013-02-01T22:04:17.337 回答