通过url为具有相同名称的复选框字段传递值?tag = tag1 + tag2 + tag3

时间:2014-03-22 10:04:06

标签: wordpress forms checkbox

我安装了Wordpress,并在每个类别页边栏上都有此表单:

<form name="tags" onChange="document.forms.tags.submit();"> <input type="checkbox" name="tag" value="tag1" <?php if((isset($_GET["tag"])) && $_GET["tag"] == "tag1") { echo "checked";}?>>tag1<br> <input type="checkbox" name="tag" value="tag2" <?php if((isset($_GET["tag"])) && $_GET["tag"] == "tag2") { echo "checked";}?>>tag2 </form>

目标是创建一个像/?tag = tag1 + tag2等的URL。 使用上面的代码我得到这样的URL:/?tag = tag1&amp; tag = tag2。

我已经搜索了两个星期并尝试了很多,但对我来说没有任何作用。我试过了

<input type="checkbox" name="tag[]" value="tag1" <?php if((isset($_GET["tag"])) && $_GET["tag"] == "tag1") { echo "checked";}?>>tag1

然后我得到?tag%5B%5D=tag1而Wordpress没有找到任何结果。

每次选中复选框时,表单都会提交。

如果我使用无线电输入字段,那么效果很好,因为每次都有一个值,但是我想传递多个具有相同名称的值并渲染一个像/?tag = tag1 + tag2的网址+ tag3 + tag4等。

任何人都可以帮我解决这个问题,因为我不知道如何为我做这项工作。谢谢!

1 个答案:

答案 0 :(得分:0)

这就是你想要的:

// This would output '/client/?s=word&foo=bar'
echo add_query_arg( 'foo', 'bar' );

查看add_query_arg()get_query_var()

考虑这个例子http://codepad.org/s08Jmseg

$url_string = $_SERVER['QUERY_STRING'];
// reuturn: tag=tag1+tag2+tag3

parse_str($url_string);

// $tag holds the value tag1+tag2+tag3
$string = urldecode( $tag );
$arr = explode(" ", $string);
$my_tag = "tag2";

if( in_array( $my_tag, $arr ) ) {
    // $key
    echo $my_tag . ' found!';
}
else {
    echo "Tag Not Found!";
}

//print_r($arr);