CakePHP 链式插件下拉列表未链接

CakePHP Chained Plugin Dropdown not linking

我正在尝试使用 Chained 插件来限制用户从 select 前往错误国家/地区的城市。在我没有国家 selected 的那一刻,它让我从所有城市中进行选择。但是一旦我select一个国家它就不会让我select任何城市。我已经使用来自 Chained 网站的代码让这个插件正常工作。 我的损坏的 countries/cities 版本可以在这里看到 登录:访客 密码:密码 http://team.southpacificavionics.com/customers/add 如果您将 url 上的 "add" 更改为 "test"(抱歉,我无法 post 更多链接),则可以看到我的测试版本。 我使用 ./cake bake 来创建我的客户、国家和城市控制器、模型、模板和关键关系。

You can see from this image that the cities are linked to countries

这是我的 add.ctp 客户

 <?php echo $this->Html->script('jquery.min'); ?>
 <?php echo $this->Html->script('jquery.chained'); ?>

<script type="text/javascript">
    $(document).ready(function () {
        $("#cities").chained("#countries");
    });
</script>

<script type="text/javascript">
    $(document).ready(function () {
        alert('java is working');
    });
</script>

<?php
/**
  * @var \App\View\AppView $this
  */
?>

<div class="customers form large-9 medium-8 columns content">
    <?= $this->Form->create($customer) ?>
    <fieldset>
        <legend><?= __('Add Customer') ?></legend>

        <?php
            echo $this->Form->input('country_id', ['options' => $countries, 'empty' => true,'id'=>'countries']);
            echo $this->Form->input('city_id', ['options' => $cities, 'empty' => true,'id'=>'cities']);

        ?>
    </fieldset>

    <?= $this->Form->end() ?>

这是我的mysql代码

CREATE TABLE IF NOT EXISTS `southpac_team`.`customers` (
  `id` INT NOT NULL,
  `country_id` INT NULL,
  `city_id` INT NULL,
  PRIMARY KEY (`id`))
ENGINE = InnoDB;

CREATE TABLE IF NOT EXISTS `southpac_team`.`countries` (
  `id` INT NOT NULL AUTO_INCREMENT,
  `name` VARCHAR(100) NULL,
  PRIMARY KEY (`id`))
ENGINE = InnoDB;

CREATE TABLE IF NOT EXISTS `southpac_team`.`cities` (
  `id` INT NOT NULL AUTO_INCREMENT,
  `country_id` INT NOT NULL,
  `name` VARCHAR(100) NULL,
  PRIMARY KEY (`id`))
ENGINE = InnoDB;

您没有在城市下拉选项中添加 class,但您应该 在城市下拉选项中添加国家 ID 作为 class

如何在 CakePHP 下拉菜单中添加 class

$items = $this->Cities->find('all')->all()->toArray();
        $cities = [];
        foreach ($items as $key => $value) {
              $cities[$key]['value'] = $value['id'];
              $cities[$key]['text'] = $value['indent_no'];
              $cities[$key]['class'] = $value['country_id'];
        }

更多检查extra attribute in dorpdown