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>