0

如何根据下拉选择在 CakePHP 中显示和隐藏表单元素:

在 CakePHP 之外,我通常会使用 jquery 或 ajax,但我似乎找不到任何可以告诉您如何在 CakePHP 中使用这种场景的方法。

这是我的观点:

<?php echo $this->Form->create('Spec'); ?>
<fieldset>
    <legend><?php echo __('Add Spec'); ?></legend>
<?php
    echo $this->Form->input('ref');
    echo $this->Form->input('service_id',array('empty'=>'Please Select'));

    echo $this->Form->input('a1',array(
                                                        'label' => 'Background:',
                                                        'div' => false
                                                    ));
    echo $this->Form->input('a2',array(
                                                        'label' => 'Business objectives:',
                                                        'div' => false
                                                    ));

当我选择“服务”时,根据我的选择,我需要显示或隐藏 a1 和 a2。

4

1 回答 1

0

这与 CakePHP 无关,Cake 不会像往常一样阻止您这样做。您在这里对 Cake 所做的只是使用 HTML 帮助器使用 PHP 为您的表单输出 HTML。

页面加载后,您的表单就会生成所有 HTML,因此您的情况与使用 HTML 构建任何其他非 Cake 网页的情况完全相同。您可以像往常一样使用结合 CSS 的 jQuery 来隐藏/显示用户与它们交互的选择框。

在您的布局文件中加载 jQuery,并在视图底部为此页面添加您的单独脚本,或者如果您愿意,也可以在您的布局文件中。真的,CakePHP 只是让生成页面更容易的框架,但它都是服务器端代码,所以一旦用户请求页面并由客户端加载,CakePHP 就完成了它的工作,并且不再有效地参与关于客户端交互性,您对页面所做的操作。

于 2013-10-17T11:51:21.680 回答