【问题标题】:Auto populate form and auto submit with URL Parameters自动填充表单并使用 URL 参数自动提交
【发布时间】:2012-09-12 09:52:37
【问题描述】:

我想用 URL 参数自动填充下面的表单,例如使用这样的 URL:

example.co.uk/example.php?acct=wirelesslogicde&pwd=jenkins

如果可能的话,我也希望它自动提交,我该怎么做??

            <form action="http://www.twg.com/logincheck.aspx" method="post" name="login" style="margin-bottom: 0;">
            <p class="readmore" style="margin-bottom: 0;">
            <input name="module" id="module" type="hidden" value="HL"/>
            <input name="page" id="page" type="hidden" value="account.aspx"/>
            <strong>Account:</strong> <br />
            <input name="acct" id="acct" class="contact input" size="12" maxlength="16"/>
            <br />             
            <strong>Password:</strong> <br />
            <input type="password" name="pwd" id="pwd" class="contact input" size="12" maxlength="16"/><br /><br />
            <input type="submit" name="submit" id="submit" class="button" value="Login"/>
            </p>
            </form>

新形式:

    <head>
    <script src="jq.js" type="text/javascript"></script>
    </head>

    <form action="http://www.zstats.com/logincheck.aspx" method="post" name="login" style="margin-bottom: 0;" id="zstatslogin">
    <p class="readmore" style="margin-bottom: 0;">
    <input name="module" id="module" type="hidden" value="HL"/>
    <input name="page" id="page" type="hidden" value="account.aspx"/>
    <strong>Account:</strong> <br />
    <input name="acct" id="acct" class="contact input" size="12" maxlength="16" value="<?php echo $_REQUEST['acct']; ?>"/>
    <br />             
    <strong>Password:</strong> <br />
    <input type="password" name="pwd" id="pwd" class="contact input" size="12" maxlength="16" value="<?php echo $_REQUEST['pwd']; ?>"/><br /><br />
    <input type="submit" name="submit" id="login" class="button" value="Login"/>
    </p>
    </form>

    <script type="text/javascript">
    $(document).ready(function() {
    $("#login").submit();       
    }); 
    </script>

【问题讨论】:

  • 您好,您为示例设置的 URL 无效,请检查...
  • 您需要提供更多信息...您想在 php 中使用服务器端还是使用 js 在客户端?您将从哪个数据源获取表单值?阿贾克斯请求?客户端cookies? php 会话?
  • 嗨,对不起。我想通过电子邮件向人们发送一个链接,该链接将自动填写此表格,因此 URL 中的值将由我放在那里。我想要最简单的解决方案,不管是前端还是后端。
  • 输入账号密码后需要自动提交。不是吗?

标签: php javascript html forms


【解决方案1】:
        <form action="http://www.twg.com/logincheck.aspx" method="post" id="login" name="login" style="margin-bottom: 0;">
           <p class="readmore" style="margin-bottom: 0;">
              <input name="module" id="module" type="hidden" value="HL"/>
              <input name="page" id="page" type="hidden" value="account.aspx"/>
              <strong>Account:</strong> <br />
              <input name="acct" id="acct" class="contact input"  value="<?=$_GET['acct']?>" size="12" maxlength="16"/>
              <br />             
              <strong>Password:</strong> <br />
              <input type="password" name="pwd" id="pwd" class="contact input"  value="<?=$_GET['pwd']?>" size="12" maxlength="16"/><br /><br />
              <input type="submit" name="submit" id="submit" class="button" value="Login"/>
           </p>
        </form>

使用$_GETURL 获取值。

对于自动提交使用,请确保在使用以下脚本之前已加载 jquery 插件。如果您没有添加 JQuery,请从 JQuery 获取它,并将该文件像任何其他 javascript 文件一样包含在您的 &lt;head&gt; 部分的 HTML 文档中。

$(document).ready(function() {
   $("#login").submit();       
}); 

【讨论】:

  • 太棒了,由于某种原因,它几乎可以正常工作 size= 也被放入表单字段中。还有什么办法让它自动提交?
  • 嗯谢谢你的帮助!自动提交虽然不太好用!
  • 在调用tat自动提交脚本之前是否添加了jquery?
  • 使用您的 chrome 开发者工具查看是否有任何 javascript 错误。
  • 我是否尝试在标题和下方添加提交代码
【解决方案2】:

您可以使用 jQuery 进行自动提交

$('#some_form_id').onLoad(function(){
$.Post('form_target',{parameters:values});
});

对于填充,您可以添加

<input name="acct" id="acct" class="contact input" size="12" maxlength="16" value="<?php echo $_REQUEST['acc']; ?>"/>
<input type="password" name="pwd" id="pwd" class="contact input" size="12" maxlength="16" value="<?php echo $_REQUEST['pwd']; ?>"/>

【讨论】:

  • 填充部分运行良好,谢谢,但自动提交没有做任何事情。 :(
  • $('#some_form_id').onLoad(function(){ $.Post('form_target',{parameters:values}, function(data) {alert(data)}); }) ;您可以使用它来查看提交返回的内容是什么
【解决方案3】:

您可以通过 php 执行此操作,例如:

<input name="acct" id="acct" class="contact input" size="12" type="text" value=="<?php echo $_GET['acct'];?>" maxlength="16"/>

或者使用更复杂的javascript,查看window.location.search来过滤查询字符串..

参考:https://developer.mozilla.org/en-US/docs/DOM/window.location

【讨论】:

  • 这很糟糕!在响应中,您永远不应该在未对其进行消毒的情况下显示用户输入。 XSS,SQL,黑客可以做的很多事情......
猜你喜欢
  • 1970-01-01
  • 2013-05-23
  • 2012-06-19
  • 1970-01-01
  • 1970-01-01
  • 2018-02-19
  • 1970-01-01
  • 2020-01-25
  • 1970-01-01
相关资源
最近更新 更多