0

このajaxに問題があります。返しが面白い。#about が true であるかのように、スイッチは常に評価されるようです。そして、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( "Content-Type:text / html");

于 2013-03-23T08:59:43.853 に答える