Javascript url中的Ajax调用后数据id不';不变
我正在输出多个使用相同Javascript url中的Ajax调用后数据id不';不变,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我正在输出多个使用相同的动态链接。我的AJAX调用加载所有链接的内容,但URL始终显示第一个链接的id。如何让它在单击不同链接时更改url中的id $string .= '<a class="hrefid" data-id="'.$name["id"].'" href="#link">'.$name["name"].'</a>'. 这是解决方案 $('.hrefid').on('click', function (e) { var $this = $(this); va
的动态链接。我的AJAX调用加载所有链接的内容,但URL始终显示第一个链接的id。如何让它在单击不同链接时更改url中的id
$string .= '<a class="hrefid" data-id="'.$name["id"].'" href="#link">'.$name["name"].'</a>'.
这是解决方案
$('.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'));
}
});
}
});
必须将id值传递给jquery。将值传递给jquery后,需要告诉url将传输数据的文件
$('.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'));
}
});
}
});
关于test.php
if($_GET[action] == "update"){
$id = $_GET['id'];
echo $id;
}
我认为,您不能通过编程方式更改地址栏中的url链接,因为这违反了安全规则。 想象一下,你打开了一个坏网站,上面显示的页面与你最喜欢的银行账户操作页面完全相同,而且地址栏中的url链接与银行账户操作页面相同。。。所以你不会怀疑这不是真正的银行页面。您在此页面上的操作可能会导致将您的凭据交给坏人 您可以通过编程方式更改url链接的哈希部分。
此处wiki about问题可能是您对历史的使用。replaceState: