【问题标题】:How to monitor updated values of three <select>如何监控三个 <select> 的更新值
【发布时间】:2012-09-26 00:49:59
【问题描述】:

我使用 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['比赛'] = 1 $_POST['类别']) = 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 尝试了一些东西,但没有得到我想要的结果。

我想,应该有一个函数可以监控三个“选择”中任何一个的变化。 controller-view interaction

如果您有任何想法如何做到这一点,请提供一些建议。 谢谢。

这些是我的控制器(results.php)和视图(results_view.php) scripts

【问题讨论】:

    标签: php codeigniter jquery


    【解决方案1】:

    这样的?

    $("form select").change(function () {
        $.getJSON("results_view.php", $(this).parent().serialize(), function() {
            // update form from JSON data
        });
    });
    

    【讨论】:

    • 如果我理解得很好,这会将值从 results_view.php 的表单发送到 results_view.php。这行不通。这些值应该发送到 results.php(控制器),因为它们在模型查询中用作参数。那就是我卡住的地方。如何从控制器中为
    • 控制器需要使用json_encode()返回结果,然后“从JSON数据更新表单”代码可以插入使用jQuery来更新东西。 jQuery.populate 插件可能很有用。
    猜你喜欢
    • 2020-09-13
    • 2012-01-15
    • 1970-01-01
    • 2015-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-04
    • 1970-01-01
    相关资源
    最近更新 更多