从复选框中取出多个值并将它们传递给“submit”上的标题

时间:2011-02-19 13:02:14

标签: php header checkbox

这可能非常简单,但我对php也很新。 我正在寻找一种方法,我可以在表单上有复选框,可以通过提交按钮传递给php文件,根据值生成一个Header定位。

例如

苹果X. 梨 橘子X

会导致输出php文件执行标题(“Location:url.com/Apples+Oranges”);

我很难解决如何将复选框值作为字符串的问题,其次在标题上方执行此操作会导致标题失败,原因很明显,所以我想我必须使用一些输出缓冲区?

谢谢!

2 个答案:

答案 0 :(得分:1)

假设没有其他表单元素与这些复选框一起提交,并且表单是通过POST提交的:

 $string = url_encode(implode(',', array_keys($_POST)));
 header("Location: url/$string");

如果还有其他值,而您只需要复选框,则必须指定应以这种方式处理哪些表单字段,而不是仅仅抓取所有内容。

答案 1 :(得分:1)

基本上你只需要获得post变量并在进行任何其他输出之前重定向:

<?php 
if(((bool) $_POST)){
    $url = 'http://url.com/';
    $url .= implode('+',$_POST['fruit']);
    $url .= $_POST['fruittext'];
    header("Location: ".$url);
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
</head>
<body>
<form action="" method="post">
    <input value="Apples"           type="checkbox" name="fruit[]" />
    <input value="Pears"            type="checkbox" name="fruit[]" />
    <input value="Oranges"          type="checkbox" name="fruit[]" />
    <input value="magicmushrooms"   type="checkbox" name="fruit[]" />
    <textarea name="fruittext"></textarea>
    <input type="submit" />
</form>
</body>
</html>