用ajax和PHP打开页面

时间:2013-04-04 18:48:39

标签: php ajax

我想用ajax打开一个页面,用ajax打开浏览器URL中的链接。当然,页面不会重新加载整个页面,只会重新加载内容。 这是我的代码。但是我一直有错误"注意:未定义的索引:rel在第2行和第34行的C:\ xampp \ htdocs \ www \ html5-history-api \ menu1.php

我希望这个错误消失......

header.php:

<br>Header Content from header.php</br></br>
<style>
#menu{font-size:20px;}
#content{font-size:30px;}
</style>
<script language="javascript" src="jquery-1.4.4.min.js"></script>
<script>
$(function(){
    $("a[rel='tab']").click(function(e){
        //e.preventDefault(); 
        /*  
        if uncomment the above line, html5 nonsupported browers won't change the url but will display the ajax content;
        if commented, html5 nonsupported browers will reload the page to the specified link. 
        */

        //get the link location that was clicked
        pageurl = $(this).attr('href');

        //to get the ajax content and display in div with id 'content'
        $.ajax({url:pageurl+'?rel=tab',success: function(data){
            $('#content').html(data);
        }});

        //to change the browser URL to 'pageurl'
        if(pageurl!=window.location){
            window.history.pushState({path:pageurl},'',pageurl);    
        }
        return false;  
    });
});

/* the below code is to override back button to get the ajax content without reload*/
$(window).bind('popstate', function() {
    $.ajax({url:location.pathname+'?rel=tab',success: function(data){
        $('#content').html(data);
    }});
});
</script>
<div id='menu'>
    <a rel='tab' href='http://localhost/www/html5-history-api/menu1.php'>menu1</a> | 
    <a rel='tab' href='http://localhost/www/html5-history-api/menu2.php'>menu2</a> | 
    <a rel='tab' href='http://localhost/www/html5-history-api/menu3.php'>menu3</a>
</div>

并且menu1.php(menu2和3与1相同)

<?php 
if($_GET['rel']!='tab'){
    include 'header.php';
    echo "<div id='content'>";
}
?>
menu1 content in menu1.php
<?php 
if($_GET['rel']!='tab'){
    echo "</div>";
    include 'footer.php';
}?>

所以是的,代码有效,但我不喜欢在我的代码中出错,而且我不知道该怎么做。

感谢。

2 个答案:

答案 0 :(得分:0)

如警告所示,您没有定义数组索引。你的代码应该是

if (isset($_GET['rel']) && ($_GET['rel'] != 'tab')) {

答案 1 :(得分:0)

尝试从以下位置更新:

if($_GET['rel']!='tab'){

对此:

if(isset($_GET['rel']) ? $_GET['rel']!='tab')){

看看是否能修复它。