【问题标题】:What is the EASIEST way to add form data to a URL?将表单数据添加到 URL 的最简单方法是什么?
【发布时间】:2011-01-15 02:40:05
【问题描述】:

我创建了一个用于移动网站的简单结帐表单:

<form action="" method="GET">
        First Name:<br />
        <input type="text" name="firstname" />
        <br /><hr />
        Last Name:<br />
        <input type="text" name="lastname" />
        <br /><hr />
        Phone Number:<br />
        <input type="text" name="phonenumber" />
        <br /><hr />
        Address:<br />
        <input type="text" name="address" />
        <br /><hr />
        Town:<br />
        <input type="text" name="town" />
        <br /><hr />
        County:<br />
        <input type="text" name="county" />
        <br /><hr />
        Postcode:<br />
        <input type="text" name="postcode" />
        <br /><hr />
        Email:<br />
        <input type="text" name="email" />
        <br /><hr />
        <input type="submit" value="Submit" />
        </form>

创建的信息只需要传入一个 URL。给出了基本 URL,在本例中为 domain.com。创建并导航到的 URL 应如下所示:domain.com/p=firstname+lastname+123+456+7890+123+address+street+etc.....

因为这是针对移动网站的,所以 不能 使用 JavaScript。 PHP 将是理想的,因为我有一些知识,但其他解决方案可能是可能的。

关于从哪里开始或研究什么的任何指导?

【问题讨论】:

    标签: php mobile-phones mobile-website


    【解决方案1】:

    安德斯,

    如果您需要将此发布到另一个站点,那么您应该使用重定向。

    这里是需要的步骤 ->

    1. 将上述表单发布到您自己的 PHP 页面
    2. 在该页面上,重定向到您需要发布到的页面,其中 URL 字符串是您插入变量所需的格式。

    在 PHP 中进行重定向:

    header( 'Location: http://www.yoursite.com/new_page.html' ) 
    

    【讨论】:

    • 是的,你会这样做。
    • 只要确保在读取表单变量后 header() 调用发生在 php 文件的顶部即可。
    【解决方案2】:

    如果您使用的是 Apache 服务器,您可以使用 mod_rewrite 将 URL 正则表达式制作成您想要的任何内容。

    【讨论】:

    • 或 IIS 重写,在频谱的另一端。
    • 合理,但我目前不确定服务器。
    【解决方案3】:

    使用method="GET"(而不是POST)使浏览器将表单数据作为URL 的一部分(以action?fieldName=value&amp;fieldName2=value2 的形式)传递。

    【讨论】:

    • 所以在我的情况下,使用 action="domain.com?p=firstname=value& 有些是有道理的,但在我看来,这会创建一个指向 firstname=john+lastname=smith 而不是 john+smith . 不幸的是,传递的 URL 的确切格式很重要。
    • 正确,你最终会得到 firstname=john&lastname=smith。没有办法改变它。如果你有更严格的要求,你将无法单独使用 GET。您需要做一些其他的技巧(例如将表单提交到 PHP 页面,该页面重新格式化数据并发送实际的、正确格式化的请求)。
    【解决方案4】:

    您是否必须具有该确切的 URL 格式?您不能将表单方法更改为GET 并使用标准查询字符串格式吗?如果你真的想要那种格式,你可以在服务器上重定向。坦率地说,我认为常规查询字符串更好(如果添加一个字段呢?)

    【讨论】:

    • 我所指的网站告诉我我需要这种格式。 “如果我添加一个字段”是什么意思?
    • 说中间名字段被添加了。那么新的预期格式大概是 domain.com/p=firstname+middlename+lastname+123+456+7890+123+address+street+etc 。如果站点收到缺少字段的请求,他们将不知道缺少哪个字段,并且可能例如将 lastname 解释为中间名数据。这就是字段名称很重要的原因。
    【解决方案5】:

    不完全确定您在问什么,但您似乎希望上面的表单将自己提交到一个 URL,其中所有变量都在 URL 字符串中。如果是这种情况,您必须将方法更改为 GET。至于将这些变量拉入您的接收页面,PHP 很好。 PHP 中获取 get var 的语法是

    $_GET["fname"]; 
    

    【讨论】:

    • 对,我理解 GET 是必要的,但至于将所有变量放在一起......恐怕我还在学习。
    猜你喜欢
    • 2021-11-12
    • 1970-01-01
    • 2022-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-03
    • 1970-01-01
    • 2011-04-23
    相关资源
    最近更新 更多