Javascript 在不使用?id=xxx的情况下单击链接时传递参数

Javascript 在不使用?id=xxx的情况下单击链接时传递参数,javascript,php,html,Javascript,Php,Html,是否有任何方法可以通过单击链接来传递参数,例如,在链接不处理参数的情况下 <a href='example.php?id=1'>M</a> 我不想使用?id=1 有办法做到这一点吗?我希望在单击链接时将参数传递到下一页,而不使用表单和链接参数 所以我可以在下一页处理参数,而不是在同一页上 例1 您可以使用data-*参数和Ajax <a class="example_anchor" href='example.php?' data-id="1" >M&l

是否有任何方法可以通过单击链接来传递参数,例如,在链接不处理参数的情况下

<a href='example.php?id=1'>M</a>

我不想使用
?id=1

有办法做到这一点吗?我希望在单击链接时将参数传递到下一页,而不使用表单和链接参数

所以我可以在下一页处理参数,而不是在同一页上

例1 您可以使用
data-*
参数和Ajax

<a class="example_anchor" href='example.php?' data-id="1" >M</a>

<script>

$(".example_anchor").on("click", function (e) {
e.preventDefault();
var id = $(this).data('id');

$.ajax({
    url: your_url,
    type: "POST",
    dataType: "json",
    data: { id: id },
    error: function (msg) {
        // Error handling
    },
    success: function (msg) {
        // Success handling
        if (msg == true) {
             alert("You will now be redirected.");
             window.location = "//your_redirect_link/";
        }
    }
});


});

</script> 

最简单-您可以创建一个带有隐藏输入的表单,然后单击该链接将其发送。下面是代码(使用jQuery):

$('.submit form')。单击(函数(){
//在表单中添加要发送到输入的值
$('#link extra info input').val($(this.data('submit'));
//链接中的href将成为表单的操作
$('#link extra info').attr('action',$(this.attr('href'));
//提交表格
$(“#链接额外信息”).submit();
//返回false以取消单击事件的正常操作
返回false;
});

潜在的创造性解决方案:使用cookie。HTML将是:

<a href="link.html" onclick="passVariable(this)">Link</a>

用一些JS

<script>
function passVariable(url) {
    document.cookie = "id=1";
    window.location.href = this;
}
</script>

函数passVariable(url){
document.cookie=“id=1”;
window.location.href=这个;
}
然后在导航到的页面上,使用一些JS检索cookie:

<script>
    function getCookie(cname) {
        var name = cname + "=";
        var decodedCookie = decodeURIComponent(document.cookie);
        var ca = decodedCookie.split(';');
        for(var i = 0; i <ca.length; i++) {
            var c = ca[i];
            while (c.charAt(0) == ' ') {
                c = c.substring(1);
            }
            if (c.indexOf(name) == 0) {
                return c.substring(name.length, c.length);
            }
        }
        return "";
    }
</script>

函数getCookie(cname){
变量名称=cname+“=”;
var decodedCookie=decodeURIComponent(document.cookie);
var ca=decodedCookie.split(“;”);

对于(var i=0;i AJAX使他保持在同一页面上,而不是将他带到链接中的URL。实际上,我想转到该URL,而不是停留在同一页面上,是否可以稍加修改,以便转到该页面?我不太熟悉ajax@ankitsuthar该重定向不会传递变量。您最终会调用目标脚本两次:第一次发送变量,从脚本中什么也得不到,第二次不发送任何数据。要清楚,我也认为Ajax是最好的这种交互方式。但是你需要得到结果并在同一页面中使用它,而且OP在他的情况下还有其他的东西。这是迄今为止最有效和最有效的S。解决方案,谢谢。我不仅可以创建大量类似行为的链接,而且你的笔记帮助我调整了你的JavaScript以适应我的。谢谢
<script>
    function getCookie(cname) {
        var name = cname + "=";
        var decodedCookie = decodeURIComponent(document.cookie);
        var ca = decodedCookie.split(';');
        for(var i = 0; i <ca.length; i++) {
            var c = ca[i];
            while (c.charAt(0) == ' ') {
                c = c.substring(1);
            }
            if (c.indexOf(name) == 0) {
                return c.substring(name.length, c.length);
            }
        }
        return "";
    }
</script>