我有一个ajax代码,当更改选择值时,加载下一个选择的值。
当我在某个页面时,例如:societario/attorneys/solicitar
这样可以正常工作并加载loadfiliais
罚款。
但是,当我在societario/attorneys/edit/
例程中时,响应是相同的编辑页面而不是loadfiliais视图。
响应没问题,但页面是实际页面edit
。
以下是ajax的代码:
$(document).ready(function() {
$('.loading').hide();
$("#AttorneyEmpresa").change(function(){
$.ajax({
type: 'POST',
data: { select: $('#AttorneyEmpresa').val()},
url: 'loadfiliais',
beforeSend: function() {
$("#AttorneyFilial").hide();
$('.loading').show();
},
success: function(data) {
$("#AttorneyFilial").html(data).show();
$('.loading').hide();
}
})
})
});
控制器loadfiliais:
function loadfiliais() {
if($this->request->is('ajax')) {
$this->loadModel('Branch');
$this->layout = 'ajax';
$this->set('filiais',$this->Branch->find('all', array('conditions' => array('company_id' => $this->request->data['select'])))
);
}
}
视图loadfiliais:
<option value="">Selecione</option>
<?php foreach($filiais as $filial): ?>
<option value="<?php echo $filial['Branch']['id']; ?>"> <?php echo $filial['Branch']['nome']; ?></option>
<?php endforeach ?>
由于
答案 0 :(得分:1)
我认为loadfiliais
是attorneys
控制器中的一个动作。在这种情况下,尾部斜线很可能是问题所在。
没有尾部斜杠,solicitar
被视为文件名,attorneys
被视为文件所在的文件夹,这是AJAX调用的基本文件夹,所以你将结束societario/attorneys/loadfiliais
。
使用尾部斜杠,如societario/attorneys/edit/
中一样,edit
被视为基本文件夹,因此您最终会调用societario/attorneys/edit/loadfiliais
的AJAX。
您可以通过使用AJAX网址的绝对路径来避免这种情况,即
url: '/societario/attorneys/loadfiliais'