1

AJAX関数を使用してdivをリロードするため、ページをリロードせずにURLを変更したい。問題は、AJAX が div をロードするときに、url パラメータを読み取らないことです。

私のコード(私はすでにjquery.jsなどをロードしています):

index.php

<a href="#page=1" onClick='refresh()'> Link </a>
<a href="#page=2" onClick='refresh()'> Link2 </a>


<script type="text/javascript">

 $.ajaxSetup ({
    cache: false
 });

 function refresh() {

    $("#test").load("mypage.php"); //Refresh
}

</script>



<div id="test">

</div>

mypage.php

 <?php 

 if (isset($_GET['page'])){

   $page = $_GET['page'];
 }
echo $page;

?>
4

4 に答える 4

0

page要求している URL にパラメーターを渡す必要があります。

これを試して:

<a href="#page=1" onClick='refresh(1)'> Link </a>
<a href="#page=2" onClick='refresh(2)'> Link2 </a>


<script type="text/javascript">

 $.ajaxSetup ({
    cache: false
 });

 function refresh(pageNumber) {

    $("#test").load("mypage.php?page="+pageNumber); //Refresh
}

</script>
于 2013-07-26T13:35:32.417 に答える
0

#ハッシュタグの取得:

PHPあり(ページ読み込み必須)

必要なparse_url() fragmentインデックス

$url = parse_url($_SERVER['REQUEST_URI']);
$url["fragment"]; //This variable contains the fragment

jQuery を使用する場合: (ページの読み込みは不要)

var hash = $(this).attr('href').split('#')[1];
var hash = $(this).attr('href').match(/#(.*$)/)[1];

デモ (ハッシュタグなしで使用)

index.php

<a href="#" class="myLink" data-id="1"> Link </a> | <a href="#" class="myLink"  data-id="2"> Link2 </a>

<script type="text/javascript">
 $(".myLink").click(function(e) { // when click myLink class
    e.preventDefault(); // Do nothing
    var pageId = $(this).attr('data-id'); // get page id from setted data-id tag
    $.ajax({
        type:'POST',
        url:'mypage.php', // post to file
        data: { id: pageId}, // post data id
        success:function(response){ 
            $("#test").html(response); // write into div on success function
        }
    });
});
</script>

<div id="test"></div>

mypage.php

<?php 
// get with $_POST['id']
echo "Loaded Page ID: ".($_POST['id'] ? $_POST['id'] : "FAILED");
?>
于 2013-07-26T13:36:56.407 に答える