2012-10-25 78 views
0

我遇到了我正在開發的網站有問題。在IE9中動態加載的div(ajax)是空的,並且在firefox上運行得很差(php不能編譯),我可以在div中讀取我的php文件的源代碼。 我已經嘗試了很多解決方案,如從GET更改爲POST或向URL添加唯一標識或發出異步請求,但內容完全爲空。有任何想法嗎?感謝jquery上的動態內容即

function pageload(hash) { 
    if(hash == '' || hash == null) 
    { 
     document.location.hash = "#php"; // home page 
    } 

    if(hash) 
    { 
    getPage(); 
    } 

} 

function getUniqueTime() { 
    var time = new Date().getTime(); 
    while (time == new Date().getTime()); 
    return new Date().getTime(); 
} 

function getPage() { 
    var str = getUniqueTime(); 
    console.log(str); 
    var data = 'page=' + encodeURIComponent(document.location.hash); 
    $('#content').fadeOut(200); 
    $.ajax({ 
     url: "loader.php?_=" + str, 
     type: "POST",  
     data: data,  
     cache: false, 
     success: function (html) {   
        $('#content').fadeIn(200); 
        $('#content').html(html); 
      }  
    }); 
} 

編輯:

//loader.php 
<? 
require_once('session.class.php'); 
require_once('user.class.php'); 

$se = new session(); 
$lo = new user(); 

$se->regenerate(); 

if(isset($_POST)) 
{ 
$alpha = (string) $_POST['page']; 

if($alpha == '#php') 
{ 
    include 'homeloader.php'; 
} 

else if($alpha == '#cplus') 
{ 
include 'cplusloader.php'; 
} 

else if($alpha == '#web') 
{ 
    include 'underloader.php'; 
} 

else if($alpha == '#about') 
{ 
    include 'underloader.php'; 
} 

else if($alpha == '#social') 
{ 
    include 'socialloader.php'; 
} 
    } 
else 
    $page = 'error'; 


echo $page; 
?> 

回答

0

php doesn't compileasync request?實際上沒有指定ascync: true該請求是異步執行的,在版本jQuery 1.8中根本沒有同步AJAX請求。附加的錯誤處理程序,你會看到你的要求可能會導致一個錯誤:

... 
    cache: false, 
    success: function (html) {   
       $('#content').fadeIn(200); 
       $('#content').html(html); 
    }, 
    error: function (a,b) { 
     alert('Error!'); 
    } 
    ... 

通常AJAX由兩個部分組成 - 客戶端和服務器端。我沒有在您的問題中發現serverside。你必須檢查他們兩個。製作一個簡單的loader.php返回字符串success並擺脫所有額外的獲取參數。首先在瀏覽器中測試你的php文件,確保它能正常工作。檢查螢火蟲的JavaScript錯誤...

+0

..其實我的代碼中沒有看到任何錯誤提示。我的php工作正常,因爲它不是通過ajax加載..我的admin.php頁面完美地工作 – lollo

+0

使用'Firefox - FireBug - 腳本選項卡 - 放置和斷點成功和錯誤處理程序 - 查看它執行時的位置。如果你沒有安裝它(Firebug)...去插件並安裝它 - 非常有用的一個不只是這種情況。嘗試調試一下你的代碼,你會知道發生了什麼。 – Reflective

+0

我解決了火狐問題我有一個錯誤的php標籤..很奇怪..對不起 – lollo

1

試試這個:

//on click of a button: 
$("#button").live("click", function(){ 

    //get you string data 
    var str = "test"; 
    //do new version of ajax 
    $.post("loader.php", {str:str}, function(html){ 
     $('#content').html(html); 
    }); 
}); 

,你不需要做AJAX方法了$。員額在我的編輯我加入了PHP代碼工作驚人

+0

我會嘗試它..謝謝 – lollo

+0

你的解決方案似乎工作..但哪些是發送後的價值? – lollo

+0

後的價值是str所以你將需要拿起它與$ _POST [「str」] – Relentless