【问题标题】:Passing form field content to same form field on a new page将表单域内容传递到新页面上的相同表单域
【发布时间】:2010-02-09 04:17:42
【问题描述】:

我有一个“电子邮件”地址的表单字段,我想在每个页面的顶部设置一个小表单,其中有一个“电子邮件地址”字段,然后是一个注册按钮到一个页面来完成一个详细的邮件列表订阅表格。我有两个问题:

  • 如何将表单中输入的数据传递到专用“邮件列表”页面上的电子邮件地址?
  • 当用户点击“提交”时,如何将用户重定向到专用的“邮件列表”页面?

【问题讨论】:

    标签: javascript forms


    【解决方案1】:

    当您准备好使用 javascript 传递数据时,何不更进一步,为您的功能提供一个页面。

    使用 javascript,您可以显示或隐藏您希望用户看到的表单。
    甚至您构建一个表单并在两个状态之间显示或隐藏一些额外的字段。

    在这些配置中,读取同一页面中的值非常容易。
    并且用户体验会更好。

    编辑(在绝望的评论之后;)

    在页面的 BODY 中设置这样的表单:

    <form action="javascript:void(0)" >
        <input type="text" name="email" />
        <input type="submit" value="sign up!" onclick="signUp(this.form)"/>
    </form>
    <script>
        function signUp(form){
            window.location.href = 'signUp.html?email=' + form.email.value;
        }
    </script>    
    

    在注册页面的正文中:

    <form id="frm" action="javascript:void(0)" >
        <input type="text" />
        <input type="text" name="email" />
        <input type="submit" value="register!" onclick="register(this.form)"/>
    </form>
    
    <script>
        function urlParam(name, w){
            w = w || window;
            var rx = new RegExp('[\&|\?]'+name+'=([^\&\#]+)');
            var val = w.location.href.match(rx);
            return !val ? '':val[1];
        }
    
        var frm = document.getElementById('frm');
        frm.email.value = urlParam('email');
    </script>
    

    当您单击第一个表单的按钮时,会使用注册页面的参数构建 url。

    注册页面加载完毕,然后我们获取表单的引用,用函数“urlParam”读取url的值,并将值放到名为“email”的字段中

    【讨论】:

    • 伟大的想法迈克。我走这条路的原因是我不太擅长 Javascript/PHP。我更像是一名设计师,我已经花费了很多时间来按照你的建议去做。它在 Firefox 中完美运行,但在 Ineternet Explorer 7 中绝对是 FUBAR。
    • 使用 JavaScript 传递表单数据是完全不可靠的。
    • 麦克风:是的。你为 Brian 的问题提供了一个很好的答案,但 Brian 要求的只是不好的做法。表单也应该在没有 JavaScript 的情况下工作,尤其是对于像 this 这样基本的东西。
    【解决方案2】:

    如何将表格中输入的数据传递到专用“邮件列表”页面上的电子邮件地址?

    为电子邮件input 使用正确的name 属性。

    当用户点击“提交”时,如何将用户重定向到专用的“邮件列表”页面?

    您可以使用form 元素的action 属性来定义它:

    <form action="mailing-list.php" action="post">
     …
    </form>
    

    【讨论】:

    • 酷...除了我说的是通过页面 A 上的表单收集电子邮件地址,然后将该数据传递到页面 B 上的电子邮件地址字段。我认为它需要javascript并通过URL字符串传递......只是不知道如何寻找更好的方法。
    • 你控制页面B吗?那么为什么不直接使用$_POST(假设您使用的是 PHP)?
    • 是的,我控制页面 A 和 B... $_POST 如何将页面 A 上的 字段电子邮件中的数据传递到页面上的 字段电子邮件B页?
    • Brian:将&lt;input name="&lt;?php echo $_POST['email']; ?&gt; 填写在 B 页的表格中。
    猜你喜欢
    • 1970-01-01
    • 2015-12-26
    • 2019-09-07
    • 1970-01-01
    • 2016-10-03
    • 1970-01-01
    • 1970-01-01
    • 2013-02-10
    • 1970-01-01
    相关资源
    最近更新 更多