选中复选框后如何将用户发送到不同的页面?

时间:2018-03-24 07:20:00

标签: php

<form entype="multipart/form-data" method="GET" action="">
          <div class="box-body">
            <input class="form-control input-lg" name="keyword" type="text" placeholder="Masukkan kata kunci">
          </div>
          <div class="box-body">
            <input value="1" type="checkbox" class="minimal" name="queryexp" />
            Gunakan query expansion
          </div>
          <div class="box-footer">
            <button type="submit" class="btn btn-primary" value="Submit">Submit</button>
          </div>
        </form>
你好,我想问一个简单的问题。上面的代码是 search.php , 我想根据是否选中复选框将表单发送到其他页面。如果选中该复选框,则会将其定向到 resqueryexp.php ,但如果没有,则会定向到 result.php

我一直在尝试添加此代码,但它不起作用。

<?php

if (isset($_GET['queryexp'])){

    header("Location: resqueryexp.php");

}else{

   header("Location: result.php");
}?>

抱歉我的英语不好,并提前致谢。

2 个答案:

答案 0 :(得分:1)

  

请记住,在任何实际输出之前必须调用header()   通过普通HTML标记,文件中的空行或PHP发送。   使用include或require读取代码是一个非常常见的错误,   函数或其他文件访问函数,并且有空格或空   调用header()之前输出的行。一样的问题   使用单个PHP / HTML文件时存在。



<html>
<?php
/* This will give an error. Note the output
 * above, which is before the header() call */
header('Location: http://www.example.com/');
exit;
?>


http://php.net/manual/en/function.header.php

答案 1 :(得分:1)

&#13;
&#13;
<?php
if ( isset( $_GET['submit'] )) {
  if ($_GET['queryexp'] == 1 ){
     header("Location: resqueryexp.php");
     exit;
}
else 
{
     header("Location: result.php");
     exit;
  }
}	
?>
<html>
<head><title>test</title>
</head>
<body>
    <form enctype="multipart/form-data" method="GET" action="">
              <div class="box-body">
                <input class="form-control input-lg" name="keyword" type="text" placeholder="Masukkan kata kunci">
              </div>
              <div class="box-body">
                <input value="1" type="checkbox" class="minimal" name="queryexp" />
                Gunakan query expansion
              </div>
              <div class="box-footer">
                <button type="submit" name="submit" class="btn btn-primary" value="Submit">Submit</button>
              </div>
            </form>
&#13;
&#13;
&#13;

此代码不会在此处运行,但这就是它在您的网络服务器上的工作方式。重要的是测试表单是否已提交。所以,在这种情况下,我给了提交按钮名称&#34;提交&#34;然后用PHP测试以查看表单是否已提交。如果提交了表单,并且选中了复选框,则会发生通过header()的重定向。否则,如果取消选中该复选框,则通过标题将重定向发生到result.php。您可以通过调整PHP.ini设置并添加此行来避免标题问题&#34; output_buffering = On&#34;。

注意:通常是一个enctype属性值为&#34; multipart / form-data&#34;涉及提交文件,在这种情况下,method属性应该是POST请求而不是GET;见MDN