當用戶轉到其中一個頁面(我們稱之爲page1)時,PHP會加載包含有關用戶數據的數組的HTML內容。AJAX調用在本地服務器上工作,但不在線
一旦頁面加載(DOM就緒),我使用jQuery的向執行AJAX調用來檢索數據的陣列的HTML。我這樣做是爲了獲得使用單獨的PHP模板文件的好處。通過這種方式,PHP將爲雙維數組中的每個數組調用PHP模板並返回HTML。
page1.php中:
<script type="text/javascript">
var globalArray = <?php echo json_encode($freres); ?>;
jQuery(function($) {
liste(); // Ajax call to get HTML for the data in "globalArray"
});
</script>
AJAX調用:
function liste() {
$.ajax({
data : {
array : globalArray,
dataName : 'someName',
file : 'templates/t_item_file'
},
dataType : 'html',
success : function(data, textStatus, jqXHR) {
var table = $('table');
var rows = $('<table>' + data + '</table>').find('tr');
rows.each(function(i, e) { // insert with fade-in animations
var row = $(e);
row.hide();
table.append(row);
row.delay(i * 15).fadeIn(250);
});
},
type : 'GET',
url : config.site + 'ajax/view' // configured in header
});
}
某處t_header.php:
<script type="text/javascript">
var config = {
base : "<?php echo base_url(); ?>",
site : "<?php echo site_url(); ?>"
};
</script>
的CONFI當我使用的EasyPHP這個
public function view() {
$file = $this->input->get('file');
$array = $this->input->get('array');
$dataName = $this->input->get('dataName');
foreach ($array as $vars) {
$data[$dataName] = $vars;
$this->load->view($file, $data);
}
}
:重定向到AJAX /視圖/ g的路線...
$route['ajax/(:any)'] = 'c_ajax/$1';
控制器c_ajax,處理AJAX調用的方法在本地主機上,一切工作正常,我收到了預期的HTML,如:
<TR>
<TD>...</TD>
//...
</TR>
<TR>
//...
然後我把它插入到table
。但是,當我嘗試在FireBug的網站上執行此操作時,我可以看到AJAX響應不是200
,而是302 Moved Temporarily
。
任何人都可以幫助我找出解決辦法的方法,因爲我花了差不多四天的時間學習jQuery和AJAX,並且它不工作(僅限在線)。
'302'是一個重定向,可能與您的實際代碼無關。尋找定義重定向的'.htaccess'文件(假設爲Apache),或者您在代碼中創建的內容。 – hexblot
嘗試打一個AJAX網址在瀏覽器直接在地址欄裏檢查的內容越來越 –
@hexblot事實上,我有我的服務器是處理該集合PHP_5_4,一個在我的笨層次結構的根目錄以外的根目錄的.htaccess從URL中刪除'index.php'。我已經嘗試過刪除它,然後放回* *的index.php在URL中,但它仍然沒有工作。 – Flawyte