我正在使用codeigniter并希望使用ajax获取一些用户信息。这就是我所拥有的,但它不起作用
在视图中我有一个已定义的变量:
<script type="text/javascript">
var end_user = "<? echo $user_id; ?>";
</script>
<div id="tabs6"></div>
js file:
function get_experience()
{
$.post(base_url + "index.php/home/get_experience", { user : end_user }, function(data) {
if (data.status == 'ok')
{
$("div#tabs6").html(data);
}
else
{ //nothing }
}, "json");
}
get_experience();
控制器:
public function get_experience()
{
$this->load->model('experience_model');
$end_user = $this->input->post('user');
$one_exp = $this->experience_model->one_exp($end_user);
if ($one_exp->num_rows() > 0)
{
$one_exp_html = '<ul>';
foreach($one_exp->result() as $exp)
{
$one_exp_html .= '<li>';
$one_exp_html .= $exp->experience;
$one_exp_html .= '</li>';
}
$one_exp_html .= '</ul>';
$result = array('status' => 'ok', 'content' => $one_exp_html);
return json_encode($result);
exit();
}
else
{
$result = array('status' => 'ok', 'content' => 'nothing here');
return json_encode($result);
exit();
}
}
模型:
function one_exp($end_user)
{
$query_str = "SELECT experience FROM exp WHERE user_id = ?";
$query = $this->db->query($query_str, $end_user);
}
答案 0 :(得分:1)
你必须回应我想的结果,而不是回归它。
答案 1 :(得分:1)
您需要在return $query
方法中添加one_exp
。
修改强>
您在视图中设置了user_id
,但在javascript函数end_user
中使用了get_experience()
。
此外,由于它是json
,您需要将html填充更改为
$("div#tabs6").html(data.content);
要获得更多调试,请在回调中添加提醒(在if (data.status == 'ok')
添加alert(data);
之前)
答案 2 :(得分:0)
我不确定但js中的end_user值出现问题。试一下这个文件:
<script type="text/javascript">
var end_user = "<? echo $user_id; ?>";
get_experience(end_user);
</script>
<div id="tabs6"></div>
js文件:
function get_experience(foo)
{
$.post(base_url + "index.php/home/get_experience", { user : foo }, function(data) {
if (data.status == 'ok')
{
$("div#tabs6").html(data);
}
else
{ //nothing }
}, "json");
}