0

我有一个包含 html 表的表单,允许用户从中添加或删除行。那会很好用。

/*add row*/
function add_Items(itemtypeid, itemid, reqqty) {
    var mode = 1;
    var pstSettings = {
        url: 'ajax_Items/' + itemid + '/' + mode
        callback: function (data) {
            var dyntd = "";
            var hidval = "";
            var $response = $(data);
            var resitmname = $response.filter('#Item_Name').text();
            var resitmdesc = $response.filter('#Item_Descrip').text();
            dyntd = "<td><label>" + itemid + "</label></td>";
            dyntd += "<td><label>" + resitmname + "</label></td>";
            dyntd += "<td><label>" + resitmdesc + "</label></td>";
            dyntd += "<td><label>" + reqqty + "</label></td>";
            hidval += '<input type="hidden" name="itemid"  value=' + itemid + ' />';
            hidval += '<input type="hidden" name="reqitem"  value=' + reqqty + ' />';
            dyntd += '<td>' + hidval + '<input type="button" name="min" class="minus" value="-" />';

            $('.item-result-table tr:last').after('<tr>' + dyntd + '</tr>');
        }
    };
    post_Call(pstSettings);
}
}

/* delete row */
$(document).ready(function () {
    $('.item-result-table').delegate('.minus', 'click', function (e) {
        $(this).parent().parent().remove();
    });
});

但是现在我的问题是如何在表单中提交html表格,因为都是html标签而不是输入类型标签。我添加了一个隐藏标签。但它也产生了只取第一个元素,其他元素被忽略的问题。是否存在任何其他方法来提交此 html 表格数据?

4

2 回答 2

1

你只得到一个输入的原因是你定义错了,你需要将它定义为数组:

<input type="hidden" name="itemid[]"  value=' + itemid + ' />
<input type="hidden" name="reqitem[]"  value=' + reqqty + ' />'

然后在 PHP 中:

$_POST['itemid'][0]; 
于 2013-04-14T10:18:53.420 回答
0

我认为您可以使用$.ajaxjquery 功能。您可以以如下形式序列化所有输入:

$("#btn_submit").on('click', function() {
    $.ajax({
        url: $(this).closest("#div_content").find("#form").attr( 'action' ),
        type: 'post',
        data: $(this).closest("#div_content").find("#form").serialize(),
    }).done( function(msg) {
        //console.log("ok");
    }).fail( function(jqXHR, textStatus) {
        //console.log("fail");
    }); 
});

使用“序列化”,您可以发送所有变量,并在控制器上读取变量$_POST和输入名称。

于 2013-04-14T10:19:58.340 回答