三个选项分别基于先前的jquery进行选择


three selects each based on previous jquery

我试图在cakehp+jQuery中做3个选择,第一个选择是在那个地方的省份、第二个地方、第三个学校。这是我的蛋糕代码(到目前为止):

           echo $this->Form->input('proviences', array(
                'type' => 'select',
                'empty' => true,
                'options' => $proviences,
                'label' => 'Province',
                'class' => 'proviences',
                'before' => '<div style="float:left;width:180px"',
                'after' => "</div>"
            ));
            echo $this->Form->input('localities', array(
                'type' => 'select',
                'empty' => true,
                'options' => $localities,
                'label' => 'City',
                'class' => 'localities',
                'before' => '<div style="float:left;width:180px"',
                'after' => "</div>"
            ));
            $schoolList = array();
            foreach($schools as $value) {
                $schoolsList[]=$value['name'];
            }
            echo $this->Form->input('school_id', array(
                'label' => 'Szkoła',
                'options' => $schoolsList,
                'empty' => true,
                'before' => '<div style="float:left;width:240px"',
                'after' => "</div>",
                'onchange' => "submit();",
            ));

在$schools中,我有一个这样看的列表

array(
   id1 => array(
         'name' => 'some_name',
         'province' => 'some_province',
         'locality' => 'some_city'
         )
)

并使用它来获得省份、地区和学校名称的列表我试着用这个,但没能用/根据以前的选择筛选三个选择框有没有一种方法可以在没有ajax的jQuery中实现这一点?

您可以在不使用ajax的情况下完成此操作,但为此,您需要客户端上的schools数组,并在客户端上基于该数组创建/编辑选项。

这是一把正在工作的小提琴。(匆忙拼凑,但你明白了)。不过,您需要将schools数组放入js中。您可以使用AJAX,也可以在页面上将其作为json传递:

echo 'var schools = JSON.parse('.json_encode($schools).');

你也必须考虑把它放在哪里,这样变量就不会泄漏到全局范围内。您可以将它放在jQuery闭包中,例如:

echo '(function($){';
echo 'var schools = JSON.parse('.json_encode($schools).');
// now the javascript from the fiddle...
echo '}(jQuery))';