-1

こんにちは、同じサーバー内の他のhtmlファイルからコンテンツをロードするためにajaxを使用するhtmlファイルがあります。なぜかうまくいかない??私はajaxが初めてなので、手がかりがありません。

ここにindex.html(デフォルトのホームページ)があります

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" href="demo.css" />
<script type="text/javascript" src="../jquery.min.js"></script>
<script type="text/javascript" src="script.js"></script>
</head><body><div id="rounded">
<img src="img/top_bg.gif" alt="top" /><div id="main" class="container">
<h1>ajax example</h1>
<h2>ajax jquery</h2>
<ul id="navigation">
<li><a href="#info">Page_1</a></li>
<li><a href="#page2">Page2</a></li>
<li><a href="#page3">Page_3</a></li>
<li><a href="#page4">Page_4</a></li>
<li><img id="loading" src="img/ajax_load.gif" alt="loading" /></li>
</ul>
<div class="clear"></div>
<div id="pageContent">
it is a test</div>
</div><div class="clear"></div>
<img src="img/bottom_bg.gif" alt="bottom" /></div>
</body>
</html>

script.js (URL にハッシュを追加し、戻るボタンを有効にし、コンテンツをロードするため)

ar default_content = "";
$(document).ready(function () {
    checkURL();
    $('ul li a').click(function (e) {
        checkURL(this.hash);
    });
    default_content = $('#pageContent').html();
    setInterval("checkURL()", 250);
});
var lasturl = "";

function checkURL(hash) {
    if (!hash) hash = window.location.hash;
    if (hash != lasturl) {
        lasturl = hash;
        if (hash == "")
            $('#pageContent').html(default_content);
        else
            loadPage(hash);
    }
}

function loadPage(url) {
    var datastring = url.replace('#', '');
    $('#loading').css('visibility', 'visible');
    $.ajax({
        type: "POST",
        url: "load_page.php",
        data: 'datastring=' + datastring,
        dataType: "html",
        async: false,
        success: function (msg) {
            if (parseInt(msg) != 0) {
                $('#content').html(msg);
                $('#loading').css('visibility', 'hidden');
            }
        }
    });
}   

およびload_page.php

<?php  
$url = $_REQUEST['datastring'];
echo $url;

if(file_exists(''.$url.'.html')){
echo file_get_contents(''.$url.'.html');
}
else{ 
echo 'There is no such page!';
}
?>

助けが必要!ajax が "pagecontent" div を呼び出すとわかるように、要求されたページからコンテンツが読み込まれますが、ここでは何も起こりません! 私は何を間違っていますか?

4

1 に答える 1

1

ajax 応答ハンドラーに「#content」があるように見えます... div id と一致するように「#pageContent」にする必要があります。つまり、次のようになります。

success: function (msg) {
    if (parseInt(msg) != 0) {
        $('#pageContent').html(msg);
        $('#loading').css('visibility', 'hidden');
    }
}
于 2013-09-08T20:09:15.417 に答える