这可能非常简单,但我对php也很新。 我正在寻找一种方法,我可以在表单上有复选框,可以通过提交按钮传递给php文件,根据值生成一个Header定位。
例如
苹果X. 梨 橘子X
会导致输出php文件执行标题(“Location:url.com/Apples+Oranges”);
我很难解决如何将复选框值作为字符串的问题,其次在标题上方执行此操作会导致标题失败,原因很明显,所以我想我必须使用一些输出缓冲区?
谢谢!
答案 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>