【发布时间】:2016-05-27 09:42:13
【问题描述】:
直奔主题。
这是我的模型(学生模型)的一些功能:
public function get_exam_data($exam_id){
$this->db->select('exam_id, exam_name, duration');
$this->db->from('exams');
$this->db->where('exam_id', $exam_id);
$result = $this->db->get();
$exam = array();
$examrow = $result->row();
$exam['id'] = $examrow->exam_id;
$exam['name'] = $examrow->exam_name;
$exam['duration'] = $examrow->duration;
return $result;
}
public function start_exam($exam_id, $student_id)
{
$this->db->select('*');
$this->db->from('exam_record');
$exam_newstatus = array(
'student_id' => $student_id,
'exam_id' => $exam_id);
$this->db->set('start_time', 'NOW()', FALSE);
$this->db->insert('exam_record', $exam_newstatus);
//$examrecord_id is autoincrement in mysql exam_record table
$examrecord_id = $this->db->insert_id();
return $examrecord_id;
}
这是来自学生控制器的函数:
public function get_student_exam_data()
{
$exam_id = $this->input->post('examId');
$examdata = $this->student_model->get_exam_data($exam_id);
$session = get_session_details();
if (isset($session->studentdetails) && !empty($session->studentdetails))
{
$loggeduser = (object)$session->studentdetails;
$examrecord_id = $this->student_model->start_exam($exam_id, $loggeduser->student_id);
}
echo json_encode($examdata);
}
这就是我通过 Ajax 访问 $examdata 值的方式:
jQuery(function()
{
$.ajax({
type : "POST",
url : "../get_exam_data/",
async : false,
data : {"examId": EXAM_ID },
success: function(response)
{
var data = $.parseJSON(response);
examId = data.id;
examName = data.name;
examDuration = data.duration;
}
});
}
我希望能够从学生控制器传递 $examrecord_id 以在我的 jQuery 文件上使用它,就像 $examdata. 我尝试在控制器上使用 json_encode() 两次。没用。
如何将 $examrecord_id 从 Controller 传递到 jQuery 文件? 有人可以启发我吗?谢谢。
【问题讨论】:
-
您听说过隐藏输入或一般输入吗?
-
如果你在你的javascript中设置
dataType: 'json',,jquery会自动反序列化你的响应。 (见这里:stackoverflow.com/questions/8517071/…) -
@FlorianMoser 这是一个很好的提示。为了访问数据,我必须先指定数据类型,这样 Ajax 才能翻译该数据结构。 (CMIIW)
-
@madalinivascu 是视图中常用的那些吗?我在输入数据表单中使用了几个隐藏索引?
标签: php jquery mysql ajax codeigniter