我无法从上一页的单选按钮获取值。我现在的html + php代码字很好用搜索栏,这是下面的第一个表格。但是,我希望能够在搜索栏下方设置单选按钮过滤器。
<section class="bar">
<form action="/sub/search.php" method="post">
<input type="test" name="criteria" placeholder="Search...">
<button>Search</button>
</form>
</section><br>
<form style="text-align:center" method="post" name="rb_filters">
<input type="radio" name="rb_filters" value="1">1
<input type="radio" name="rb_filters" value="2">2<br>
</form>
在我的PHP代码中,我想根据选中的单选按钮运行某些功能。 所以我试图做的是:
if($_POST['rb_filters']=='1')
{
/* run code */
}
然而它不起作用= /任何帮助都会非常感激= D。
答案 0 :(得分:0)
让它成为一个大的形式。您没有看到$_POST['rb_filters']
值的原因是因为它们所属的表单未提交。
这应该做:
<form action="/sub/search.php" method="post">
<section class="bar">
<input type="test" name="criteria" placeholder="Search..."/>
<input type="submit" value="Search"/>
</section>
<p>
<input type="radio" name="rb_filters" id="rb_filters_1" value="1"/>
<label for="rb_filters_1">1</label>
</p>
<p>
<input type="radio" name="rb_filters" id="rb_filters_2" value="2"/ >
<label for="rb_filters_2">2</label>
</p>
</form>
我对你的标记进行了一些编辑:
答案 1 :(得分:0)
这是一个非常令人困惑的问题。
你要么:
如果您想要#2,请查看The Maniac的答案。
如果你想要#1,那么问题是你没有提交按钮。
<section class="bar">
<form action="/sub/search.php" method="post">
<input type="test" name="criteria" placeholder="Search...">
<button>Search</button>
</form>
</section><br>
<form style="text-align:center" method="post" name="rb_filters">
<input type="radio" name="rb_filters" value="1">1
<input type="radio" name="rb_filters" value="2">2<br>
<button>Submit</button>
</form>
虽然我同意先前的评论,但是将单独的对象命名为相同(形式名称= rb_filters +输入名称= rb_filters)并不是一个好主意,事实是输入是什么将在$ _POST中通过。
您可以通过添加以下内容轻松验证:
var_dump($_POST);
每当你测试这样的事情时,这是一个很好的开始,了解表格帖子发生了什么或没有发生。
答案 2 :(得分:0)
post方法根据您在表单操作属性中指定的页面将数据提交到特定页面。如果您有两个单独的表单和一个提交按钮,则提交按钮所关联的表单将传递给它的操作。但是,为了将一种形式的数据值与您为另一种形式调用的脚本相关联,您将不得不将它们组合成一个表单。您仍然可以使用if语句并根据$ _POST ['selected radio button name']的值调用不同的脚本。我不太明白为什么你需要两个单独的单选按钮和搜索栏。可以使用CSS轻松处理美学,从一个输入发布到动作的数据在创建一个函数告诉它之前不会干扰另一个输入的数据。除非您希望单选按钮在同一页面上更新搜索脚本,否则不会提交按钮。然后,这将涉及一些jquery ajax来更新代码的服务器端。您必须拥有一个功能,可以在单选按钮选择中检测用户端更改,并调用ajax脚本来更新搜索栏所绘制的池。