在目标页面上创建一个自动填充字段的链接
Posted
技术标签:
【中文标题】在目标页面上创建一个自动填充字段的链接【英文标题】:Create a link that automatically fills a field on the target page 【发布时间】:2012-01-05 08:05:40 【问题描述】:我正在编写一份时事通讯,而让我这样做的人想要一个链接......一切都完美没有问题......
现在的问题是,当您单击此链接时,它会进入一个包含字段的页面,并且那个人问我是否可以自动填写其中一个字段。
该页面是某些服务的订阅页面,当您使用他的电子邮件登陆该页面时,此人希望我自动填写推荐字段。有可能吗?
谢谢大家
【问题讨论】:
【参考方案1】:执行此操作的一种方法是将字段名称和值放在查询字符串中。 “查询字符串”是包含字段/值对的 URL 的一部分。它与页面地址由?
分隔,后跟由&
字符分隔的字段=值对。例如,
http://www.example.com
...会变成...
http://www.example.com?fieldName=fieldValue
为了使其工作,页面必须将字段解析为 HTTP GET
请求的一部分,然后将值作为预填充字段返回。如果表单在服务器端得到正确验证,那么它通常已经具有解析字段并在同一表单的多次提交中保留其值的能力。这是因为如果某些字段为空白或具有无效值,则这样做允许重新绘制页面并显示错误消息。
这很容易测试 - 只需在页面源中找到字段名称并扩展您当前使用的 URL,如上所示。如果它有效,你就完成了。如果没有,您可能需要更新服务器端的代码以接受该字段作为查询字符串的一部分。
完成同样事情的其他方法更多地依赖于服务器端代码。例如,许多网站在 URL 中嵌入了关联推荐 ID,例如:
http://www.example.com/123456/
在这种情况下,服务器端代码将目录路径解释为一个字段并相应地对其进行解析。因为这需要非常具体的服务器端代码来支持它,所以第一个选项可能是您最好的选择。
【讨论】:
我已经尝试过了,首先感谢您花时间尝试解决我的问题....但不起作用.... :(还有其他解决方案吗? 没有保证可以从客户端执行此操作。任何链接都会成为 HTTP(s) GET 请求,您所需要处理的只是协议、域、端口、路径和查询字符串。如何解释传递给它的部分(即路径和查询字符串)取决于服务器和/或应用程序。您可以使用该支持,也可以不使用。你不能强迫它从客户端发生。【参考方案2】:遇到了这个问题,下面的 javascript 代码解决了问题。
使用@T.Rob查询字符串参数。
HTML 代码:
<input type="text" name="fillfield" id="fillfield" style="width: 350px;" class="input" value=""/>
JAVASCRIPT 代码:
window.onload=function()
function querySt(ji)
hu = window.location.search.substring(1);
gy = hu.split("&");
for (i=0;i<gy.length;i++)
ft = gy[i].split("=");
if (ft[0] == ji)
return ft[1];
var fieldName = querySt("fieldName");
if( fieldName==null)
else
document.getElementById('fillfield').value = fieldName;
当您访问http://www.example.com?fieldName=fieldValue
时,它会自动将fieldValue
填写到fillfield
输入中。
【讨论】:
如何在我尝试 + 和其他解决方案但没有工作的 URL 中的字段中包含名字和姓氏,它们之间有空格,或者我应该编辑 JavaScript 代码,我该怎么做?跨度> 【参考方案3】:使用php
<?
$passthis = "See you on the other side";
echo '<form action="whereyouwantittogo.php" target="_blank" method="post">'.
'<input type="text" name="passthis1" value="'.
$passthis .' " /> '.
'<button type="Submit" value="Submit" >Submit</button>'.
'</form>';
?>
您要将信息传递到的页面脚本:
<?
$thispassed = $_POST['passthis1'];
echo '<textarea>'. $thispassed .'</textarea>';
echo $thispassed;
?>
在单独的页面上使用这两个代码,后者在 whereyouwantittogo.php 中,你应该在做生意。
【讨论】:
以上是关于在目标页面上创建一个自动填充字段的链接的主要内容,如果未能解决你的问题,请参考以下文章