在Twig模板-PHP中刷新后检查复选框

时间:2014-02-20 16:06:29

标签: php checkbox filter

我正在尝试创建一个搜索功能,允许以这样一种方式过滤结果:每次单击点击框上的选项时重新加载包含新结果的页面,还允许您使用REMAIN CHECKED的复选框继续过滤重装后。

我见过HTML的解决方案,如:

<input type="checkbox" name="txtCheck" value="your value" <?php if(isset($_POST['txtCheck'])) echo "checked='checked'"; ?>  /><br />

但这在树枝上不起作用。有没有人知道树枝模板中的解决方案?

提前谢谢。

我的表格的一部分如下:

<form action="{{ path ('person_search') }}" method="GET">
                <input type="checkbox" name="role" value="Applicant" onclick="this.form.submit()">Applicant<br>

1 个答案:

答案 0 :(得分:1)

PHP
<?php
    use Symfony\Bundle\FrameworkBundle\Controller\Controller;
    use Symfony\Component\DependencyInjection\ContainerInterface;
    use Symfony\Component\HttpFoundation\Request;

    public function myControllerAction(){
        $isChecked1 = false;
        $isChecked2 = false;

        $request = $this->get('request');
        $cookies = $request->cookies;

        if ($cookies->has('CHECKBOX_1_CHECKED'))
        {
            $isChecked1 = true;
        }

        if ($cookies->has('CHECKBOX_2_CHECKED'))
        {
            $isChecked2 = true;
        }

    return $this->render(
        'MyBundle:Bundle:some.html.twig',
        array(
            'isChecked1' => $isChecked1,
            'isChecked2' => $isChecked2,
        )
    );
}
?>

 TWIG
 <form action="{{ path ('person_search') }}" method="GET">
            <input type="checkbox" name="role1" {%if isChecked1 %} checked="checked" {& endif %} value="Applicant" onclick="this.form.submit()">Applicant<br>
            <input type="checkbox" name="role2" {%if isChecked2 %} checked="checked" {& endif %} value="Manager" onclick="this.form.submit()">Manager<br>

...      注意      您可以使用PHP或使用Javascript

设置cookie