codeigniter:如何将数组从控制器传递到 jquery 查看
codigniter: how to pass array from controller to view with jquery
我的控制器索引方法已经加载了一个参数,其中有两个下拉字段,当我 select 第一个然后我用 jquery ajax 获取第二个的数据然后当我 select 第二个时,我需要从 list_ByBatch 方法传递另一个数组。
我的控制器是:
public function index() {
$data['round'] = $this -> AttendanceModel -> get_round();
$this->load->view('common/header');
$this->load->view('common/menu');
$this->load->view('attendance/attendance', $data);
$this->load->view('common/footer');
}
public function list_ByBatch(){
$batch=$this->input->post('batchid',TRUE);
$list['trainee']=$this->AttendanceModel->get_traineeList($batch);
if(!empty($list['trainee'])){
return $list['trainee'];
}
}
脚本:
<script type="text/javascript">
$(document).ready(function() {
$("#round").change(function(){
/*dropdown post */
$.ajax({
url:"<?php echo base_url(); ?>index.php/attendance/batch_ByRound",
data: {round: $(this).val()},
type: "POST",
success: function(data){
$("#batch-list").html(data);
}
});
});
$("#batch-list").change(function(){
/*dropdown post */
$.ajax({
url:"<?php echo base_url(); ?>index.php/attendance/list_ByBatch",
data: {batchid: $(this).val()},
type: "POST",
success: function(data){
$("#traineeList").html(data);
$("#subTotal").html("Total: " + $('#traineeList tr').length.toString());
document.getElementById("classHour").defaultValue = "4";
}
});
});
});
</script>
如何将'list_ByBatch'中的数组传递到执行#batch-list更改函数时查看已加载的页面。
您应该使用 echo
和 json_encode
:
而不是返回
public function list_ByBatch(){
$batch=$this->input->post('batchid',TRUE);
$list['trainee']=$this->AttendanceModel->get_traineeList($batch);
if(!empty($list['trainee'])){
echo json_encode($list['trainee']);
}
}
我的控制器索引方法已经加载了一个参数,其中有两个下拉字段,当我 select 第一个然后我用 jquery ajax 获取第二个的数据然后当我 select 第二个时,我需要从 list_ByBatch 方法传递另一个数组。
我的控制器是:
public function index() {
$data['round'] = $this -> AttendanceModel -> get_round();
$this->load->view('common/header');
$this->load->view('common/menu');
$this->load->view('attendance/attendance', $data);
$this->load->view('common/footer');
}
public function list_ByBatch(){
$batch=$this->input->post('batchid',TRUE);
$list['trainee']=$this->AttendanceModel->get_traineeList($batch);
if(!empty($list['trainee'])){
return $list['trainee'];
}
}
脚本:
<script type="text/javascript">
$(document).ready(function() {
$("#round").change(function(){
/*dropdown post */
$.ajax({
url:"<?php echo base_url(); ?>index.php/attendance/batch_ByRound",
data: {round: $(this).val()},
type: "POST",
success: function(data){
$("#batch-list").html(data);
}
});
});
$("#batch-list").change(function(){
/*dropdown post */
$.ajax({
url:"<?php echo base_url(); ?>index.php/attendance/list_ByBatch",
data: {batchid: $(this).val()},
type: "POST",
success: function(data){
$("#traineeList").html(data);
$("#subTotal").html("Total: " + $('#traineeList tr').length.toString());
document.getElementById("classHour").defaultValue = "4";
}
});
});
});
</script>
如何将'list_ByBatch'中的数组传递到执行#batch-list更改函数时查看已加载的页面。
您应该使用 echo
和 json_encode
:
public function list_ByBatch(){
$batch=$this->input->post('batchid',TRUE);
$list['trainee']=$this->AttendanceModel->get_traineeList($batch);
if(!empty($list['trainee'])){
echo json_encode($list['trainee']);
}
}