Извлечение нескольких значений из флажков и передача их в заголовок «submit» - PullRequest
1 голос
/ 19 февраля 2011

Это, вероятно, очень просто, но я также очень новичок в php.Я ищу способ, которым я могу иметь флажки в форме, которые могут быть переданы через кнопку отправки в php-файл, который генерирует местоположение заголовка на основе значений.

например

ЯблокиX Pears Oranges X

приведет к тому, что выходной php-файл создаст заголовок («Location: url.com/Apples+Oranges»);

У меня возникнут трудности с установкой флажкаЗначения в виде строки и, во-вторых, при выполнении этого выше заголовка вызывает сбой заголовка по очевидным причинам, поэтому я думаю, что мне нужно использовать некоторый буфер вывода?

Спасибо!

Ответы [ 2 ]

1 голос
/ 23 февраля 2011

По сути, вы просто получаете переменные 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>
1 голос
/ 19 февраля 2011

Предполагая, что другие элементы формы не отправляются вместе с этими флажками, а форма отправляется через POST:

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

Если есть другие значения и вы хотите установить только флажки, вы 'Придется указать, какие поля формы следует обрабатывать таким образом, а не просто захватывать все.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...