Javascript 通过表单中的隐藏输入字段传递当前页面URL

Javascript 通过表单中的隐藏输入字段传递当前页面URL,javascript,php,html,Javascript,Php,Html,我试图弄清楚如何通过一个隐藏字段传递当前页面的URL,以便在处理表单的输入后可以重定向回该页面。我尝试过使用javascript:location.href,但是它看起来好像会将其作为文本字符串传递 <input type="url" id="location" name="location" value="javascript:location.href" hidden /> 查看页面源代码时,我可以看到此输入框的值是“javascript:location.href”,而不

我试图弄清楚如何通过一个隐藏字段传递当前页面的URL,以便在处理表单的输入后可以重定向回该页面。我尝试过使用javascript:location.href,但是它看起来好像会将其作为文本字符串传递

<input type="url" id="location" name="location" value="javascript:location.href" hidden />


查看页面源代码时,我可以看到此输入框的值是“javascript:location.href”,而不是页面的URL。有什么想法吗?提前谢谢

您可以访问Javascript中的元素并在其中更改值

document.getElementById('location').value = location.href;
例如:

我不认为这样行。当页面完全加载时,您可以使用onload回调插入它:

<body onload="document.getElementById('location').value = document.location.href">

如果包含表单的文档已经是PHP文件,则可以执行以下操作

 $yourPath = $_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
在html中,您可以

echo '<input type="url" id="location" name="location" value="'.$yourPath.'" hidden />';
echo';

您可以使用JavaScript设置隐藏字段的值:

document.getElementById('location').value = window.location.href;
例如:

由于您还标记了PHP,以下是PHP版本:

<input type="hidden" id="location" name="location" value="<?php echo 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; ?>" />

这是可能的,但您需要将此脚本放在页面底部,否则它将在DOM树准备就绪之前被调用。是的,但我实际上不认为这是一个问题。如果你问我的话,将js与html标记分离并不是最糟糕的做法。:)如果你想这样做,DoKayy,如果你想要,<代码>窗口.OnLoad =函数({)文档.GETelEnMyByID(‘Load’).value = List.HeRF;}会更好。一个不必等到窗口被加载(包括所有图像等)来查询DOM,对吧?你认为哪些浏览器是“现代的”?IE9?我们甚至没有为我们的讨论指定限制条件。我们都对,好吗?:)您错过了连接回显中字符串的点。