【问题标题】:HTML Form on Submit, redirect to a page depending on Radio button value selected提交时的 HTML 表单,根据选择的单选按钮值重定向到页面
【发布时间】:2018-03-14 02:43:17
【问题描述】:

我希望能够在提交表单上,根据选择的单选按钮值重定向到页面。

我已经阅读了类似的解决方案,但我的特殊情况是我还需要将输入值传递到 URL。

例如:

(1) 使用此 URL (http://example.com/?cat=1) 从表单页面开始

(2) 选择单选按钮字段(value="999" 将输入 "page123" 或如果 value=888 则将 "page456" 输入 URL)并单击提交(也“获取”“cat”隐藏输入值)

(3) 重定向到 URL ---> (http://example.com/page123/?cat=1)

表单页面:

<form action="<MY DESIRED URL ON STEP 3>" method="get">
<input name="cat" type="hidden" />
<div class="row">
  <div class="third-row"><input id="1" class="input-hidden" name="styleid" type="radio" value="999" />
  <div class="third-row"><input id="2" class="input-hidden" name="styleid" type="radio" value="888" />
  <div class="third-row"><input id="3" class="input-hidden" name="styleid" type="radio" value="777" />
</div>
<input class="submit-button" type="submit" value="GO!" />
</form>

【问题讨论】:

  • 你试过什么?

标签: php jquery html forms


【解决方案1】:

只需使用 switch 语句,以便您可以根据输入的值设置 URL。然后使用一个头部语句进行重定向。

switch($_GET['styleid']){
    case "999":
        $url = "destinationURL";
        $params = "?cat='.$_GET['cat'].'";
        break;
    case "899":
        $url = "destinationURL";
        $params = "?cat='.$_GET['cat'].'";
        break;
    default:
        break;
}
if (isset($url) && isset($params)){
    header("location: ".$url.$params);
    die();
}
else{
    die('error');
}

编辑:回答您关于将 cat 值放入下一页的问题:

在您的表单中修改您的隐藏输入:

<input name="cat" type="hidden" value="<?php echo  trim(strip_tags($_GET['cat'])); ?>" />

然后查看上面的编辑以设置参数。

编辑 2:在看到您的代码后,您将表单操作定向到同一页面并将处理器放在一个不起作用的标签中。

更新您的表单以指向您创建的新 PHP 文件。示例:位于名为“processors”的文件夹中的“form-handler.php”

<form action="/processors/form-handler.php" method="GET" target="self"></form>

将 switch 语句和标头重定向放入处理器文件中。

【讨论】:

  • 感谢回复,但是如何设置 value1 = "猫的输入值" ?像 value1 = $_GET['cat'] 吗?
  • 因此,如果您从 example.com/?cat=1 开始,您需要能够在下一页上保留该值?
  • 查看我的编辑并告诉我是否可以为您解决问题。
  • 它更好,但它似乎仍然没有到达我想要的页面。我实际上使用 wordpress 来制作这个网站,所以我认为它不能正确读取 php 脚本,我认为它只能读取 js 中的脚本?如果我通过放置像这样的操作链接
    test.ascension.systems/product/ring-style1-example" method="get"> 来静态地执行此操作,那么我会到达我想要的位置,即“test.ascension.systems/product/ring-style1-example/…”。但我希望“ring-style1-example”部分根据单选按钮的选择动态变化:(
  • 您是否将表单发送到不是 wordpress 生成文件的脚本?这就是我会做的。你知道这些位置的实际 url 并且可以把它们放在 switch 语句中吗?
猜你喜欢
  • 1970-01-01
  • 2021-08-09
  • 1970-01-01
  • 1970-01-01
  • 2014-10-09
  • 1970-01-01
  • 1970-01-01
  • 2020-09-10
  • 1970-01-01
相关资源
最近更新 更多