0

データベースからのデータを表示するページがあります。これらの各データ行には、IDを持つリンクがあります。

<a href="javascript:void(0);" onClick="changeUrl(\'?side=annoncer&sletid='.$row['annonce_id'].'\');">

これはchangeUrl機能です:

function changeUrl(url) {
    window.history.replaceState(null, "Title", url);
}

リンクは、追加された同じページを指しています&sletid。が設定されている場合&sletid、ページは選択された行のIDでポップアップを実行する必要があります。

if (isset($_GET['sletid'])) {
    $sletid = $_GET['sletid'];
    echo "<script language='JavaScript'>alert ('ID:".$sletid."');</script>";
}

URLが変更され、ポップアップスクリプトコードがソースに追加されますが、手動でページを再度更新しない限り、ポップアップは表示されません。なぜこの振る舞い?

4

2 に答える 2

1

replaceState実際にページをロードするのではなく、ブラウザの履歴(およびロケーションバー)を編集するだけです。AJAXを使用して自分でページをロードする必要があります。

于 2012-08-07T14:41:42.100 に答える
0

履歴状態の変更はクライアント側にのみ影響するため、phpcodeは実行されません。クライアント側で履歴の変化を聞く必要があります。

于 2012-08-07T14:40:59.717 に答える