我使用codeigniter并遇到以下问题。
在控制器(results.php)中,我有类似的东西:
if(isset($_POST['tournaments'])){
$tournament_id = $_POST['tournaments'];
}else{
$tournament_id=1;
}
if( isset($_POST['categories'])){
$category_id = $_POST['categories'];
}else{
$category_id=1;
}
if( isset($_POST['groups'])){
$group_id = $_POST['groups'];
}else{
$group_id=1;
}
//returns a list of tournaments (id and name)
$data['tournaments'] = $this->tournaments_model->getTournaments();
if($data['tournaments']>0){
//returns a list of categories where tournament=$tournament_id (id and name)
$data['categories'] = $this->tournaments_model->getCategories($tournament_id);
if($data['categories']>0){
//returns a list of groups where where tournament=$tournament_id and category=$category_id
$data['groups'] = $this->tournaments_model->getGroup($tournament_id,$category_id);
}
}
//returns info about team ranking, etc.
if($data['tournaments']>0 && $data['categories']>0 && $data['groups']>0){
$data['rows'] = $this->tournaments_model->getAll($tournament_id, $category_id, $group_id);
if($data['rows']>0){
$this->load->view('header_view', $data);
$this->load->view('results_view', $data);
$this->load->view('footer_view');
}else{
$this->load->view('header_view', $data);
$this->load->view('norecords_view');
$this->load->view('footer_view');
}
}
视图(results_view.php),输出如下内容: (更改带引号的标签)
"form"
"select name="tournaments" id="tournament""
"option value="1" selected="selected">A Tournament""
"option value="2">B Tournament"
"option value="3">C Tournament"
"select name="categories" id="category""
"option value="1" selected="selected">Junior"
"option value="6" >Pro-Junior"
"select name="groups" id="group"
"option value="1" selected="selected">A Group"
"option value="2">B Group"
所以,这应该设置三个字段: $ _POST ['tournaments'] = 1 $ _POST ['categories'])= 1 $ _POST ['group'])= 1
我想做的是:
将这些值传递给控制器,而无需使用按钮提交表单。
除此之外,当“锦标赛”发生变化时(例如从1变为2),这应该为“类别”和“组”带来其他数据。
例如:
已选择:Tournament_id = 1
然后Category_id = 1,
GROUP_ID = 1
CATEGORY_ID = 2
GROUP_ID = 2
GROUP_ID = 3
选中:Tournament_id = 2
然后Category_id = 1
GROUP_ID = 1
GROUP_ID = 2
这意味着,不知何故,我必须监视所有三个$ _POST字段的更新,将它们发送回控制器 并从模型中的sql查询中获取新数据。 我尝试了一些jquery,但没有得到我想要的结果。
我想,应该有一个函数可以监视三个“select”中任何一个的变化。 controller-view interaction
如果您有任何想法,请提供一些建议。 感谢。
这些是我的控制器(results.php)和视图(results_view.php) scripts
答案 0 :(得分:1)
这样的东西?
$("form select").change(function () {
$.getJSON("results_view.php", $(this).parent().serialize(), function() {
// update form from JSON data
});
});