首先抱歉,如果我的问题根本不清楚。
所以,我在cakePHP中有一个带有Transaction模块的应用程序。该模块(至少)有3个链式下拉列表,例如此供应商>产品>包。用户选择供应商,然后在产品选择框中显示结果仅来自该选定供应商的产品。所以包装,选择产品时会显示选项。
简单地说,我使用this引用来做第一个链。有用。但是当进入Packages时,它并不容易,因为第一个大声笑。为什么?因为第二种形式,其中Products和Packages元素从一开始就具有更复杂的维数组。在第一种形式(供应商元素)中,我使用$this->request->data['Order]['supplier_id']
但是在第二种形式中,将从Ajax传递的数据如$this->request->data['OrderDetail'][$index]['product_id']
,其中第二种形式的索引具有增量编号。
示例:
<select id="Product0" name=data[OrderDetail][0][product_id]></select>
<select id="Product1" name=data[OrderDetail][1][product_id]></select>
<select id="Product2" name=data[OrderDetail][2][product_id]></select>
然后在我的控制器中,
public function functionName() {
$product_id['index'] = $this->request->data['OrderDetail']['index']['product_id'];
}
EDITED
抱歉,忘了发布我的ajax代码。
<?php
$this->Js->get('#OrderSupplierId')->event('change',
$this->Js->request(array(
'controller'=>'products',
'action'=>'gpbs'),
array(
'update'=>'.OrderDetailProduct',
'async' => true,
'method' => 'post',
'dataExpression'=>true,
'data'=> $this->Js->serializeForm(
array(
'isForm' => true,
'inline' => true)
)
)
));
如何在AJAX中传递动态索引? 因此,当它发送到控制器时,来自每个“表单元素”的数据将匹配。 谢谢,对不起我的坏语言(和描述)