Jquery 将值传递给 Controller ​​(codeigniter)

标签 jquery mysql ajax codeigniter-3

我有一个无法解决的问题。我的目标是向所有成员展示 在列表中选择的组。我已经走了这么远,我能看到 控制台中选定的组,但我不知道如何将其传递到 Controller 。希望有人理解我的问题。我的代码如下。

Members_view.php

<select id="group_id">

<?php foreach($groups->result() as $row){?>

<option value="<?php echo $row->group; ?>" ><?php echo $row->group; ?></option>
  <?php } ?>
</select>

 <ul>
 <?php foreach($members->result() as $row){?>
 <li><?php echo $row->firstname." ".$row->lastname; ?></li>
<?php } ?>
 </ul>

Jquery.js

$('#group_id').change(function(e) {
    e.preventDefault();
    var base = '<?=base_url()?>';
    var grp = $(this).val();
    $.ajax({
        type: "POST",
        url: base + "members/members",
        data: { "group_id": grp },
        dataType: "html",
        cache: false,
        success: function() {
            console.log(grp);
        }
    });
});

成员.php

 function members(){
    $group_id = $this->input->post('group_id',true);

    $data['groups'] = $this->mdl_members->_all_groups();
    $data['members'] = $this->mdl_members->_members($group_id);
    $this->load->view('members_view',$data);
}

Mdl_members.php

function _all_groups(){
  $sql = $this->db->query("select * from groups");
  return $sql;
}

function _members($id){
$sql = $this->db->query("select * from members WHERE group_id = '$id'");
return $sql;
}

致以诚挚的问候。

最佳答案

Mdl_members.php:模型返回数据,我更喜欢 arrays .

function _all_groups(){
  $sql = $this->db->query("select * from groups");
  return $sql->result_array();
}

function _members($id){
$sql = $this->db->query("select * from members WHERE group_id = '$id'");
return $sql->result_array();
}

Members.php:看看新的 members_view()方法。他正在调用view_all_groups()数据发送至select .

function members_view(){
        $data['groups'] = $this->_all_groups();
        $this->load->view('members_view',$data);
    }

function members(){
    $group_id = $this->input->post('group_id',true);
    $members = $this->_members($group_id);
    echo json_encode($members);
}

Jquery.js:只是 success: function(resp) 中的一些行获取json来自 members() 的回复并将其放入 <ul id="resp"> .

<script>
$(function () {
    $('#group_id').change(function(e) {
        e.preventDefault();
        var base = '<?=base_url()?>';
        var grp = $(this).val();
        $.ajax({
            type: "POST",
            url: base+"members/members",
            data: {"group_id": grp},
            dataType: "JSON",
            cache: false,
            success: function(resp) {
                var li = "";
                $.each(resp, function (i, v) {
                    li+="<li>"+v+"</li>";
                });
                console.log(li);
                $('#resp').html(li);
            }
        });
    });
});
</script>

Members_view.php:<ul id="resp">创建用于显示响应数据。

<select id="group_id">
    <?php foreach($groups as $row){?>
        <option value="<?=$row['group'];?>">
            <?=$row['group'];?>
        </option>
    <?php } ?>
</select>
<ul id="resp">Will be shown here!</ul>

关于Jquery 将值传递给 Controller ​​(codeigniter),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41729612/

相关文章:

javascript - 使用 css/javascript 在页面中所有图像的右上角动态放置一个按钮/div

mysql - [MySQL] : What is collation method?

php - 在 SQL 中删除行 1-150934

mysql - 选择 MySQL 中的最后一个重复行

jquery - 多个AJAX调用完成后如何通知

javascript - 当数据库更改时使用 Ajax、jquery 更新 html 列和表。 Django

javascript - 如何更正此 jquery 追加

javascript - 直接从我的 HTML View 中获取 json 对象

html - 关于 ActionLinks 和普通 a-tag 超链接的小 MVC 样式问题

Javascript - indexOf 不是那么具体