删除不是最后一个输入字段时的未定义偏移量

时间:2016-08-01 17:24:41

标签: php jquery html input cakephp-3.x

我正在使用此HTML和JQuery代码添加输入字段:

https://www.sanwebe.com/2013/03/addremove-input-fields-dynamically-with-jquery

通过一些更改,我的代码类似于此,缩短了:

$(wrapper).append('<?php echo $this->Form->input("ticket.' +index+ '.startdate"); ?>');

其中index是一个var,当我选择add fieldremove field按钮时,我正在递增和递减。

问题是我删除的元素不是最后一个元素,例如:

enter image description here

我删除文本1,2或3然后提交它,我自然得到Undefined offset错误,因为创建的元素的index var保持不变,服务器获取< / p>

ticket.0.startdate

ticket.2.startdate

ticket.3.startdate

并且不知道ticket.1.startdate在哪里。

PHP代码:

$festivalticket = $this->Festivaltickets->newEntity();
        if ($this->request->is('post')) {
            $festivalticket = $this->Festivaltickets->patchEntity($festivalticket, $this->request->data, [
                'associated' => [
                    'Tickets'
                ]
            ]);
        }

我想知道是否有办法解决这个问题。

谢谢。

1 个答案:

答案 0 :(得分:1)

我们为您的表单字段添加数组。 ticket_startdate[]将动态附加数组元素,如:

$(wrapper).append('<?php echo $this->Form->input("ticket_startdate[]"); ?>');

然后只需循环而不用担心索引:

foreach($_POST['ticket_startdate'] as $key => $start_date) {
    echo "index $key is $start_date";
}

我不知道你发布的PHP发生了什么。它看起来像一个框架,因此它可以正确处理数组。