我有一个无法解决的问题。我的目标是向所有成员展示 在列表中选择的组。我已经走了这么远,我能看到 控制台中选定的组,但我不知道如何将其传递到 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/