我有一個從javascript到控制器中的方法的ajax調用,控制器中的方法應該加載一個視圖(比如,在屏幕上顯示一個新頁面)似乎沒問題,新的視圖似乎沒有加載到屏幕上。我不能使用header或windows.location,因爲我傳遞了一個數組變量,其中包含要在視圖中使用的數據。加載ajax調用後的視圖,CodeIgniter
該頁面在Chrome調試控制檯的網絡選項卡(預覽子選項卡,同時選擇ajax)下可見。但主屏幕保持原樣。
如果有人遇到類似的問題或有解決方案,請幫助我。
謝謝!
我有一個從javascript到控制器中的方法的ajax調用,控制器中的方法應該加載一個視圖(比如,在屏幕上顯示一個新頁面)似乎沒問題,新的視圖似乎沒有加載到屏幕上。我不能使用header或windows.location,因爲我傳遞了一個數組變量,其中包含要在視圖中使用的數據。加載ajax調用後的視圖,CodeIgniter
該頁面在Chrome調試控制檯的網絡選項卡(預覽子選項卡,同時選擇ajax)下可見。但主屏幕保持原樣。
如果有人遇到類似的問題或有解決方案,請幫助我。
謝謝!
好吧,這是你在做什麼錯了。
當您使用ajax請求頁面時,它不會返回該頁面。當您使用$ this-> load-> view('pagename',$ datapassed);當您使用$ this-> load-> view('pagename',$ datapassed)時,您可能會收到以下錯誤信息:
;它加載視圖,這就是爲什麼你什麼都看不到。
你所要做的是使用
$data=$this->load->view('pagename',$datapassed, TRUE);
它帶給我們的是它會返回一個頁面,並將其保存在$數據 之後,你可以用它打印
$this->set_output($data);
和在ajax結果中接收它並將其加載到div中。
,如果你想刷新整個頁面,您可以使用
$(body).html(result);
你要明白,你需要通過提供負載認爲,第三個參數發送html頁面。
在控制器類
function get_view_ajax()
{
$data['username] = $_POST['username];
$response = $this->load->view('radius/radius_corporate_graph',$data,TRUE);
echo $response;
}
鑑於文件以在其中發起AJAX調用
$('#button').click(function(){
var username = $('#username').val();
$.ajax({
type:'POST',
url:"<?php echo base_url(); ?>controller_name/get_view_ajax/",
data: "username="+username,
success:function(msg){
$("#div_result").html(msg);
},
error: function(result)
{
$("#div_result").html("Error");
},
fail:(function(status) {
$("#div_result").html("Fail");
}),
beforeSend:function(d){
$('#div_result').html("<center><strong style='color:red'>Please Wait...<br><img height='25' width='120' src='<?php echo base_url();?>img/ajax-loader.gif' /></strong></center>");
}
});
});
<div id="div_result">
<a href="#" id="button">Click here </a>
另一個視圖文件要在控制器功能(extra_info.php)裝載在get_view_ajax功能refered
<h1>This page is called from ajax function </h1>
您是否正在嘗試更改屏幕的全部內容或僅更改電子書中的內容換貨? – Brendan 2013-03-01 18:44:54
我想改變整個內容,加載一個全新的視圖 – Archer 2013-03-01 18:47:04
我不確定你爲什麼要使用ajax。你爲什麼不鏈接到控制器/方法? – Brendan 2013-03-01 21:35:18