2013-12-23 41 views
0
echo '<script>$("#start").click(function() { 
    $.ajax({ 
     type: "POST", 
     url: "'. base_url() .'StartTest/session", 
     data: "id=' .$row->id .'", 
     success: function (result) { 
     alert(result); 
     if(result == "' .$row->id .'"){ 
      window.location.replace("'. base_url() .'StartTest/index/0"); 
     } 
     } 
    }); 
    }); 
</script> '; 

在我的查看頁面中,當用戶選擇測試時,我想將testid存儲在會話中並重定向到TestView頁面。Codeigniter - Ajax不工作無返回值

我使用了上面的ajax,但沒有發生任何事情後,我點擊啓動鏈接。 下面是我的控制器類:

public function session(){ 
    if($this->input->post('id')){ 
     $s_v = array(
      'testid' => $this->input->post('id') 
      ); 
     $this->session->set_userdata($s_v); 
     echo $this->session->userdata('testid'); 
    }else{ 
     echo "asd"; 
    } 
} 
public function index(){ 
    // Get Test ID 
    $id = $this->session->userdata('testid'); 
    ... 
    $this->pagination->initialize($config); 

    $page = ($this->uri->segment(4)) ? $this->uri->segment(4) : 0; 
    $data['question'] = $this->TestModel->getAllQuestion($id, $page); 
    $data['links'] = $this->pagination->create_links(); 
    $this->load->view('TestView',$data); 
} 
+0

你在哪裏返回數據到客戶端? –

+0

其實我不需要返回我的流程,當點擊開始按鈕時,ajax - > StartTest/session store測試id然後window.location.replace(「'。base_url()。'StartTest/index/0」);去TestView,對不起,我是codeigniter的初學者,所以不確定這個概念是否正確 – user236501

+0

如果這個概念錯了,或者有更好的方法,請指教。 – user236501

回答

0

在阿賈克斯後,你必須遵循一個有效的格式。

這裏,而不是

data: "id=' .$row->id .'",

嘗試

data : { id : "<?php echo $row->id ?>" },

希望它會HALP你。 謝謝

+0

仍然一樣,我嘗試ajaxerror,它打印出來,所以我懷疑我的阿賈克斯沒有工作。 – user236501

+0

啊,我知道。你能告訴我什麼是您的瀏覽器中顯示的錯誤。 – sandeepk05

+0

嘗試這個'data:{id:''。$ row-> id。'「},' – sandeepk05