2013-05-20 85 views
0

當用戶轉到其中一個頁面(我們稱之爲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,並且它不工作(僅限在線)。

+1

'302'是一個重定向,可能與您的實際代碼無關。尋找定義重定向的'.htaccess'文件(假設爲Apache),或者您在代碼中創建的內容。 – hexblot

+1

嘗試打一個AJAX網址在瀏覽器直接在地址欄裏檢查的內容越來越 –

+0

@hexblot事實上,我有我的服務器是處理該集合PHP_5_4,一個在我的笨層次結構的根目錄以外的根目錄的.htaccess從URL中刪除'index.php'。我已經嘗試過刪除它,然後放回* *的index.php在URL中,但它仍然沒有工作。 – Flawyte

回答

-1

問題解決了。我使用PHP加載HTML數據並將其傳遞給JavaScript,然後使用jQuery爲DOM元素設置動畫效果。

以前,我沒有在HTML數組中傳遞原始數據,然後嘗試通過Ajax獲取數組中所有元素的HTML(HTML中只有一個調用中的所有元素)。我認爲請求中的參數太多,這可能是導致錯誤的原因。

0

相反

文件: '模板/ t_item_file'

給控制器

例如完整路徑: 「http://www.yourdomain.com/---/templates/t_item_file

+0

正如你可以在'視圖()見'方法我用CI裝入對象加載模板,所以我不認爲這是問題,因爲該文件位於*的意見/​​模板/ t_item_file *。 – Flawyte

相關問題