0

我很难让表单按照我想要的方式工作。我有一个区域和属性模型,一个区域可以有许多属性等等......

我创建了一个表单来选择区域,然后选择该区域中的属性!

表单同时包含两个列表,但我很难让第二个列表 [Property] 仅使用您从第一个列表 [Regions] 中选择的区域中的属性更新 automagic

当您在列表中选择不同的区域时,它应该自动更新属性列表,因此您只能看到该区域的属性!抱歉我的解释不好,但不知道如何更好地解释这一点。

这是我的控制器中的代码:

// Retrieve the region list
        $this->set('regions', $this->Region->find('list', array(
            'fields' => array('Region.id', 'Region.regionname'),
            'order' => 'regionname',
            )));
        // Retrieve Property list for the regions.
        $this->set('properties', $this->Region->Property->find('list', array(
            'conditions' => array('Property.live' => true ),
            'fields' => array('Property.id','Property.description'),
            'order' => 'id',
            )));

这是我表格的一部分。

<?php echo $this->Form->create('Upload', array('action' => 'add', 'type' => 'file')); ?>
<?php echo $this->Form->input('region_id', array('label' => 'Select Region:')); ?>
<?php echo $this->Form->input('property_id', array('label' => 'Select Property:')); ?>
<?php echo $this->Form->file('file'); ?>

我花了很多时间在这里和 youtube 上四处寻找,但找不到:-(

4

1 回答 1

1

没有自动的方法来做你所要求的。由于下拉列表的所有数据已经​​在加载时显示,因此根据第一个选择更改第二个下拉列表的唯一方法是通过 javascript。

如果您搜索“选择下拉菜单”或类似的蛋糕,您会找到使用 ajax 或纯 js 的解决方案。我在这里给你留下一个参考。那是用ajax和一个新动作完成的。但是你也可以只用 js 来做,查找 Regions 和 Properties 并将它们设置在 js 中的 json 变量中以进行操作。

于 2013-07-08T18:51:59.670 回答