2016-07-07 10 views
1

同じ<a>を使用する複数のダイナミックリンクを出力しています。私のAJAX呼び出しはすべてのリンクの内容をうまく読み込みますが、URLは常に最初のリンクのIDを表示します。別のリンクをクリックすると、URL内のIDを変更するにはどうすればよいですか?URLのAjax呼び出しデータIDの後に変更されない

$string .= '<a class="hrefid" data-id="'.$name["id"].'" href="#link">'.$name["name"].'</a>'. 
<div id="content"></div> 
$('.hrefid').on('click', function (e) { 
    var load = $(e.target).attr("href"); 
    if(load == "#link") { 
     $.ajax({ 
      type: 'post', 
      url: "/page/test/"+$(this).parents("[data-id]").attr("data-id"), 
      complete: function (event) { 
       $("#content").contents().remove(); 
       $("#content").append(event.responseText); 
       history.replaceState({}, "", "link"+$('[data-id]').first().attr('data-id')); 

      } 
     }); 
    } 
}); 
+0

問題があなたのhistory.replaceStateを使用している可能性があります:http://stackoverflow.com/questions/12832317/history-replacestate-example – awl19

答えて

1

ここソリューションは、あなたはjqueryのにid値を渡すために持っている...

$('.hrefid').on('click', function (e) { 
var $this = $(this); 
var load = $(e.target).attr("href"); 
if(load == "#link") { 
    $.ajax({ 
     type: 'post', 
     url: "/page/test/"+id, 
     complete: function (event) { 
      $("#content").contents().remove(); 
      $("#content").append(event.responseText); 
      history.replaceState({}, "", "link" + $this.attr('data-id')); 
     } 
    }); 
} 
}); 
0

です。 jqueryに値を渡した後、データを転送するファイルをURLに伝える必要があります。私は、あなたがプログラムによって、アドレスバーのURLリンクを変更することはできませんだと思うtest.phpを

if($_GET[action] == "update"){ 
    $id = $_GET['id']; 
    echo $id; 
} 
0

$('.hrefid').on('click', function (e) { 
    var load = $(e.target).attr("href"); 
    var id = $('#your input id').val(); 
    if(load == "#link") { 
     $.ajax({ 
      type: 'post', 
      url: "/page/test.php?action=update&id="+id, 
      complete: function (event) { 
       $("#content").contents().remove(); 
       $("#content").append(event.responseText); 
       history.replaceState({}, "", "link"+$('[data-id]').first().attr('data-id')); 

      } 
     }); 
    } 
}); 

、これはセキュリティルールに違反する原因となります。 アカウント操作のためのお気に入りの銀行ページと全く同じページを表示する悪いサイトを開いていることを想像してください。また、アドレスバーのURLリンクは銀行のものと同じです...したがって、これが実際ではないという疑いはありません銀行ページ。このページのあなたの行動は悪い手にあなたの信任状を放棄することにつながるかもしれません。

urlリンクのハッシュ部分は、プログラムによって変更できます。 ここwikiについてはhash fragment of url

関連する問題