我正在使用JQuery Datatables在一个名为'users'的表中显示我论坛的所有用户。我正在使用Code Igniter进行服务器端处理。我查阅了Datatables文档,了解如何呈现数据,然后我就开始了。但是,我有一些PHP变量和函数,我想回应一个JavaScript变量,所以我可以在目标列的render函数中使用它们。但是,我想知道如何将带有参数的不同表中的模型函数回显到JavaScript变量中,或者这是否是一个好方法。以下是我的设置。我只发布了与这个问题相关的行(除非我做错了)。
模型(Dashboard_model)
public function my_followee($followee) {
$username = $this->session->username;
return $this->db->get_where('followers', array('user' => $followee, 'follower' => $username))->row_array();
}
JS:
{
"targets": [-1],
"data": null,
"orderable": false,
"render": function ( data, type, full ) {
var myself = "<?php echo $this->session->username; ?>";
var is_following = "<?php echo $this->dashboard_model->my_followee('+full[1]+');" //full[1] is username column
if(is_following == false && myself !== full[1]) {
return <a href="<?php echo base_url(); ?>follow/'+full[1]+'"> Follow </a>';
} else if(is_following == true && myself !== full[1]) {
return <a href="<?php echo base_url(); ?>unfollow/'+full[1]+'"> Unfollow </a>';
} else if(myself == full[1]) {
return 'This is you';
}
}
}
基本上,我想检查登录用户是否已经关注当前选定的用户。如果不是,请显示关注按钮,否则显示取消关注按钮。 当我检查页面时,所有按钮都跟随(当前登录用户除外),而有些按钮应返回true并显示取消关注。我怀疑我违反了这一行中的语法规则:
var is_following = "<?php echo $this->dashboard_model->my_followee('+full[1]+');"
我是JQuery和Datatables的新手,似乎无法找到正确的方法。请有人指出我正确的方向,或建议更好的方法来实现我的目标?我非常感谢你的帮助。
修改 我在我的控制器中尝试了这个来处理ajax调用请求
public function users_ajax_list()
{
$this->load->model('user/users_model', 'users');
$this->load->model('dashboard_model');
$list = $this->users->get_users();
$data = array();
foreach ($list as $user) {
if ($this->dashboard_model->my_followee($user->username) == true) {
$is_following = true;
} else {
$is_following = false;
}
$row = array();
$row[] = $user->profile_image;
$row[] = $user->username;
$row[] = ucfirst($user->surname);
$row[] = ucfirst($user->first_name);
$row[] = ucfirst($user->state);
$row[] = ucfirst($user->lga);
$row[] = $user->followers;
$row[] = $user->following;
$row[] = $user->total_posts;
$row[] = $user->gender;
$data[] = $row;
}
$output = array(
"draw" => $_POST['draw'],
"recordsTotal" => $this->users->count_all_users(),
"recordsFiltered" => $this->users->count_filtered_users(),
"data" => $data,
);
//output to json format
echo json_encode($output);
echo json_encode($is_following);
}
它产生了错误:错误的JSON响应。我究竟做错了什么?最好的方法是如何做到的?如何在目标列的render函数中访问JSON变量。