0

我在使用这个 ajax 时遇到了问题。回归很有趣。该开关似乎总是评估为好像#about 是真的。并将其余的 switch 语句包含在 #page 变量中。例如,我的 PHP 代码打印了这个(以及它应该打印的#about),底部的代码应该阐明我的意思。

回顾一下,它与第一个 $page =' 之后的所有内容相呼应

在我的页面上,我在下面看到它应该回显的内容

   ';
           break;

    case '#register' :
           $page = 'k';
           break;

    case '#contact' :
          $page = 'a';
    break;

     case '#a' :
        $page = ' b';
        break;

     case '#b' :
        $page = '<p> c</p>';
        break;


      default;
    echo "def";
   }
   echo $page;

更不用说它甚至不适用于#contact,或#a,#b ...等。我不确定为什么。无论传递的 url 是什么,它看起来好像 #about 是用它返回的内容调用的(即使它返回 about 等等)。

我真的很感激一些帮助!谢谢

这是我的代码:

js =]

$(document).ready(function () {


    //highlight the selected link
    $('a[href=' + document.location.hash + ']').addClass('selected');

    //Seearch for link with REL set to ajax
    $('a[rel=ajax]').click(function () {

        //grab the full url
        var hash = this.href;

        //remove the # value
        hash = hash.replace(/^.*#/, '');

        //clear the selected class and add the class class to the selected link
        $('a[rel=ajax]').removeClass('selected');
        $(this).addClass('selected');

        //hide the content
            $('#content').hide();
        console.log(this.href);
        //run the ajax
        getPage();

        //cancel the anchor tag behaviour
        return false;
    }); 
});


function pageload(hash) {
    //if hash value exists, run the ajax
    if (hash) getPage();    
    console.log("k");
}

function getPage() {

    //generate the parameter for the php script
    var data = 'page=' + encodeURIComponent(document.location.hash);
    $.ajax({
        url: "loader.php",  
        type: "GET",        
        data: data,     
        cache: false,
        success: function (html) {  

            //add the content retrieved from ajax and put it in the #content div
            $('#content').html(html);

            //display the body with fadeIn transition
            $('#content').fadeIn('slow');       
        }       
    });
}

php =]

switch($_GET['page']) {
 case '#about' :
        $page = ' HTML stack overflow formats it, anyways';
        break;

 case '#register' :
        $page = 'k';
        break;

 case '#contact' :
        $page = 'a';
        break;

  case '#a' :
     $page = ' b';
     break;

  case '#b' :
     $page = '<p> c</p>';
     break;


   default;
 echo "def";
}
echo $page;

再次感谢你!

4

1 回答 1

0

同样在 php 文件中,尝试将其放在脚本的顶部:

header("内容类型:文本/html");

于 2013-03-23T08:59:43.853 回答