我正在尝试在cakePhp + 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();",
));
在$学校,我有一个这样的列表
array(
id1 => array(
'name' => 'some_name',
'province' => 'some_province',
'locality' => 'some_city'
)
)
并使用它来获取省份,地区和学校名称的列表 我试图使用它但无法使其正常工作; / Filter three select boxes based on previous selections 有没有办法在没有ajax的jQuery中做到这一点?
答案 0 :(得分:1)
你可以在不使用ajax的情况下完成它,但为此你需要在客户端使用schools数组,并在客户端创建/编辑选项。
这是一个有效的fiddle。 (匆匆扔在一起,但你明白了)。但是,您需要将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))';