所以,最近我一直在讨论cakephp,但我遇到了一个我似乎无法解决的问题。我怀疑这很简单,我很遗憾(大多数情况下)。 我正在尝试做的前提在标题中有些不言自明:我在这个添加中有一个视图(我的add.ctp)我有一个用表单助手创建的表单。
我有多个选择,第一个选择是公司列表。一旦选择了公司,我现在想要使用jquery和ajax向控制器发送get请求,根据所选值更新下一个选择。
AJAX请求成功完成,但我似乎无法访问所需的返回数据(属于所选公司的项目列表)。
要清楚我正在尝试在成功回调中返回一个数组
我已经阅读了很多并且四处搜索,但我觉得v3 cakephp可能没有例子。
我的一些代码:
控制器
$projectphase = $this->Projectphases->newEntity();
$data = ['content' => 'hi', 'error' => 'nothing found'];
$projects = array('0' => 'Select something');
if($this->request->is('ajax')){
$company_id = $this->request->data('company_id');
$projects = $this->Projectphases->Projects->find('list', ['limit' => 2, 'conditions' => ['company_id' => $company_id]]);
$arr = array();
$arr = $this->chainedProjects($company_id);
$data = ['content' => 'hello', 'error' => ''];
$this->set(compact('projects', 'data'));
$this->set('_serialize', ['projects', 'data']);
}elseif($this->request->is('post')){
debug("hit post");
die();
}
公共功能chainedProjects
$projects = $this->Projectphases->Projects->find('list', ['limit' => 2, 'conditions' => ['company_id' => $id]]);
$projs = $projects->toArray();
$values = array();
$x = 0;
foreach ($projs as $key => $value) {
$values[$x] = "<option value='$key'>$value</option>";
$x++;
}
return $values;
Javascript [jquery ajax]
$(document).ready(function(){
$('#company').change(function () {
$company_id = $('#company').val();
var data = {
'type' : 'dropdown',
'company_id' : $company_id
};
$.ajax({
type : 'GET',
//url : 'delegate1/projectphases/add',
data : data,
encode : true,
beforeSend: function(xhr){
xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
},
success: function(response){
console.log('success');
console.log(response.content);
console.log(response.message);
//console.log(data.response);
//console.log(result.content);
console.log(response);
}
}).done(function(){
console.log('done');
})
});
})
Jquery 2.1.3
任何帮助都将不胜感激!