应将多选输入数据插入数据库

时间:2015-05-08 05:55:26

标签: php jquery cakephp

我想按照我的计划

  1. 表单只有一个多选项
  2. 可以使用jquery(.clone)
  3. 进行克隆
  4. 这里必定是一个问题,因为多选的同名。 (可以使用jquery进行更改)。
  5. 所有克隆的表单数据应相应地插入数据库中的新行。
  6. 查看

    echo $this->Form->input('Book.category.', array(
                                                                'class'=>'js_cetegory',
                                                                'multiple' => 'multiple',
                                                                'type' => 'select',
                                                                'label' => 'Category',
                                                                'options'=>$categories,
                                                                'empty'=>'Select Category'
                                                                )
                                                ); 
    

    调用克隆时多选输入的名称更改代码

    var len = $("#parent").length;
    $(".top:first").clone().find(".js_cetegory").attr("name", "data[Book][cetegory]["+len+"][]").end().appendTo('#parent');
    

    我的$ this->数据正在制作此数组代码

    [category] => Array
            (
                [0] => Array
                    (
                        [0] => 1
                        [1] => 2
                        [2] => 7
                    )
    
                [1] => 
            )
    
        [cetegory] => Array
            (
                [1] => Array
                    (
                        [0] => 2
                        [1] => 7
                        [2] => 8
                    )
    
            )
    

    而不是

    [category] => Array
            (
                [0] => Array
                    (
                        [0] => 1
                        [1] => 2
                        [2] => 7
                    )
    
                 [1] => Array
                    (
                        [0] => 2
                        [1] => 7
                        [2] => 8
                    )
            )
    

1 个答案:

答案 0 :(得分:0)

Cake正在使用name生成字段 - data[Book][cetegory][0]data[Book][cetegory][1] ...

应该是 -

echo $this->Form->input('Book.category.0.', array(

但克隆名称时更改为data[Book][cetegory][1][]

该字段的名称是 -

$(".top:first").clone().find(".js_cetegory").attr("name", "data[Book][cetegory][][]").end().appendTo('#parent');