【问题标题】:Using HTML Form Inputs to Define URI Path使用 HTML 表单输入定义 URI 路径
【发布时间】:2016-10-08 03:51:09
【问题描述】:

我希望创建一个 HTML 表单,它将接受表单输入并动态创建一个 URI 路径。承载表单的页面必须是纯 HTML。我已经能够创建一个将输入传递给 PHP 处理程序/重定向页面的表单,但到目前为止我还无法使用表单输入来定义 uri 路径。

我得到一个如下所示的网址:

http://www.host.com/beds-$_POST["beds"]/baths-$_POST["baths"]')

使用 POST 时。我试过设置 $_POST["beds"] = $PathVariable 但这也没有奏效。

GET 似乎不是解决方案,因为 uri 字符串不是 object=value,我最终得到一个看起来像

的字符串
/beds-$_GET["beds"]/baths-$_GET["baths"]/beds=2baths=2.  

有没有人知道一种只获取表单输入值并使用它来更改 url 字符串的特定部分的方法?理想情况下,用户会从 HTML 表单中选择 # of bed 和 # of baths 并被重定向到这样的 URL:https://www.host.com/beds-#/baths-#/。我只尝试了一个 PHP 重定向页面。如果有人知道如何使用 PHP 或其他脚本语言执行此操作,请告知。

谢谢!

【问题讨论】:

  • 按您的要求做是不可能的。表单可以通过请求正文或查询字符串提交数据。任何其他行为都需要通过 JavaScript 或服务器端重定向来处理。我建议学习如何正确使用 HTTP 请求,而不是尝试您设计的这种愚蠢的非标准方法。
  • 您只说 HTML,然后您就谈论 PHP 处理程序。这很好,但您应该澄清仅 HTML 页面可以提交到 PHP 文件。您的表单代码或您现在拥有的 PHP 处理程序在哪里?

标签: javascript php jquery html forms


【解决方案1】:

短期解决方案:

  1. 使用 JavaScript。

  2. 使用服务器端脚本。

HTML 表单本身无法做到这一点。

【讨论】:

    【解决方案2】:

    执行重定向/用例所需的代码如下。

    <?php
    
    $Path1 = $_POST["beds"];
    $Path2 = $_POST["baths"];
    
    $endpath = "beds-$Path1/baths-$Path2";
    $startpath = "static/path";
    
    
    $URL="http://host.com/$startpath$endpath";
    echo '<META HTTP-EQUIV="refresh" content="0;URL=' . $URL . '">';
    echo "<script type='text/javascript'>document.location.href='{$URL}';      </script>";
    
     ?>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-26
      • 2020-09-03
      • 1970-01-01
      • 1970-01-01
      • 2010-09-10
      • 2019-02-20
      • 2013-01-13
      • 1970-01-01
      相关资源
      最近更新 更多