【问题标题】:Checked checkbox and onclick redirect to another page in PHP选中的复选框和 onclick 重定向到 PHP 中的另一个页面
【发布时间】:2016-06-12 05:31:25
【问题描述】:

我有一个登录表单和一个带有 3 个复选框和一个最终提交按钮的部分。我想编写代码,以便在选中复选框并单击提交按钮时,根据选中的复选框将用户重定向到另一个页面。

我有:

<input type="checkbox" name="gender" value="male">
<input type="checkbox" name="gender" value="female">

我知道你可以使用

if (isset($_POST['male'])) {
    // Checkbox male is selected
} else {
    // Do something else
}

查看复选框是否被选中,并且

 <input type="button" value="goElsewhere" class="GE" id="GELSEWHERE" 
  onClick="Javascript:window.location.href = 'http://www.google.com';" />

单击按钮时的页面重定向。

但我不确定如何将这些结合起来。我该怎么办?

编辑:页面应该仅在点击最终提交按钮后重定向。复选框应该只确定用户被引导到哪个页面。选中复选框不应重定向页面。

【问题讨论】:

    标签: javascript php html


    【解决方案1】:

    试试这个

    <input type="checkbox" name="gender" value="male" id="male" >
    <input type="checkbox" name="gender" value="female" id="female" >
    
    <input type="submit" onClick="redirect()">
    

    使用客户端JS(更实用)

    function redirect()
    {
       if(document.getElementById("male").checked == true)
            window.location.href = 'http://www.google.com';
       else if(document.getElementById("female").checked == true)
            window.location.href = 'http://www.yahoo.com';        
    }
    

    使用单选按钮而不是复选框可能更实用,因为只能选择一个选项。然后使用 switch 语句。

    <input type="radio" name="gender" value="Male">
    <input type="radio" name="female" value="Female">
    

    获取所选值类似于 jbabey 对此question 的回答。

    另一种方法是在函数中简单地传递 URL

     function redirect(url)
     {
        window.location.href = url;
     }
    

    那么你就会有

    <input type="checkbox" name="gender" value="female" id="female" onClick="redirect('www.google.com')">
    

    【讨论】:

    • 对不起,我刚开始学习 PHP,所以有点困惑。我有一个 PHP 文件,其中包含 HTML 部分、标题中的 CSS 样式以及所有内容下方的 PHP 命令。如果我使用 javascript,我可以在 php ?> ?还是我必须制作一个单独的 JS 文件并以某种方式在我的 PHP 文件中引用它?
    • 我也希望用户在单击按钮时被重定向,而不是在单击某个单选按钮时。我不确定你的代码是否这样做
    • echo "";如果 insisde 会这样做。如果在常规 HTML 中,只需直接放入 即可。将 JS 放在单独的文件中是健康的编程,但不适用于特定的东西
    • @jvnna 修改代码以在提交点击时调用函数
    • @jvnna 随时。请使用单选按钮而不是复选框并尝试选择 JS 然后 jQuery
    【解决方案2】:

    如果你想用PHP重定向,方法如下。

    header("Location: http://url.com");
    

    所以:

    if (isset($_POST['male'])) {
        header("Location: http://male-website.com");
        die(); // Stop from doing anything else
    } else {
        header("Location: http://something-else.com");
        die(); // Stop from doing anything else
    }
    

    Die 被添加为任何忽略标头请求的爬虫等的安全预防措施(阻止其他任何事情发生。)

    但正如 Moussa 所说,我会用 JS 来做。

    【讨论】:

      猜你喜欢
      • 2021-10-01
      • 2019-05-08
      • 2018-11-24
      • 1970-01-01
      • 2020-09-10
      • 1970-01-01
      • 1970-01-01
      • 2017-04-03
      • 1970-01-01
      相关资源
      最近更新 更多