动态Jquery形式为PHP多维数组

时间:2014-07-22 20:01:03

标签: php jquery forms codeigniter multidimensional-array

我正在尝试使用jquery创建一个动态表单,该表单创建一个我可以在提交表单后检索的数组。

我相信我出错的地方是数组。不幸的是,这是我第一次尝试多维数组。我试图从不同的层中选择值。

所以下面的小提琴是我到目前为止所能得到的。

JSFiddle

因为你应该能够看到我的顶部数组是'事件',所以这些数字在小提琴中编号为1和2.然后如果选择'cycle',jquery将添加一个div。 div中的输入是“起始点X:”和“Z:”,还有一个“添加点”按钮,每次单击时都会添加一行表单字段。

作为参考,我使用的是codeigniter,所以我的控制器有

    function code(){

    $data['global'] = $this->input->post('global');
    $data['event'] = $this->input->post('event');
    $this->load->view('view', $data);}

所以我认为问题出在我的数组标记中。 我可以很高兴地使用$global['home_x']$global['home_z']在我的(codeigniter)视图中的单独“全局”数组中检索值。

我还可以通过循环使用

来检索$event[$j]['x_start']$event[$j]['z_start']
$event_count = count($event);
for ($j = 1; $j <= $event_count; $j++){

if($event[$j]['type'] == "cycle"){
echo number_format($event[$j]['x_start'], 3);
echo number_format($event[$j]['z_start'], 3);
}

然而,当我循环遍历数组的'point'层时,它开始出错了。 从上面继续我正在做的事情:

        if(isset($event[$j]['point'])){

        $point_count = count($event[$j]['point']);

for ($i = 1; $i <= $point_count; $i++ ) {

            if($event[$j]['point'][$i]['type'] == "move"){
                echo "Move" . number_format($event[$j]['point'][$i]['x_end'], 3) . number_format($event[$j]['point'][$i]['z_end'], 3);
            }

            else if($event[$j]['point'][$i]['type'] == "arc"){
                echo "Arc" . number_format($event[$j]['point'][$i]['x_end'], 3) . number_format($event[$j]['point'][$i]['z_end'], 3) . number_format($event[$j]['point'][$i]['radius'], 3);
            }

            else if($event[$j]['point'][$i]['type'] == "position"){
                echo "Position" . number_format($event[$j]['point'][$i]['x_end'], 3) . number_format($event[$j]['point'][$i]['z_end'], 3);
            }

        }

    }

}

我希望每个事件都有一个独立的点密钥。正如我的var point = 1point++一样,每次按下添加点按钮时,我只是在按键上添加1,无论是事件1还是2。

所以我需要这样的东西:

  

事件 - 1 - x_start
  z_start
  点    - 1 - 键入
x_end
  z_end
  半径
  点    - 2 - 键入
x_end
  z_end
  半径
  2    - x_start
z_start
  点    - 1 - 键入
x_end
  z_end
  半径
  点    - 2 - 键入
x_end
  z_end
  半径

代替:

  

事件 - 1 - x_start
  z_start
  点    - 1 - 键入
x_end
  z_end
  半径
  点    - 2 - 键入
x_end
  z_end
  半径
  2    - x_start
z_start
  点    - 3 - 键入
x_end
  z_end
  半径
  点    - 4 - 键入
x_end
  z_end
  半径

如果按下“删除点”按钮时,“点”键编号可能会重新排序,这将是完美的。因此,例如,当删除第1点时,第2点变为第1点。

最后我需要事件也是动态的,所以当按下假设的“添加事件”按钮时,它会添加一个新事件。反之亦然,删除按钮。但我目前只在视图页面中查看了for循环。

我希望我能够解释得这么好!!!

0 个答案:

没有答案