即使在php中选择选项,也可以在按钮上单击显示和隐藏div

时间:2018-02-12 14:50:16

标签: javascript php ajax zend-framework

我试图在按钮点击时显示div。如果未单击该按钮,则应隐藏div。代码正在这种情况下工作。但如果我以div的形式选择一个选项,我会重定向到旧页面,即使我没有点击任何按钮。

如果我选择任何选项,则会将其重定向到custom div。 怎么解决这个问题?

更新:

我也在表单中使用了隐藏元素。我认为这是我的问题。任何人都可以帮我解决这个问题。

custom.phtml:

   <div class="content" id="custom">
    <input type="submit" name="create_custom" value="Create Custom" id="create_custom">
    <table id="custom" class="display" cellspacing="1" width="100%" >       

//...datatable
    </table>

</div>
<div class="content" id="test"  style="display:none">
    <?php 
     echo $this->render('/custom/index.phtml');
       ?>
</div>

Module.js:

$(document).ready(function(){
        $("#create_custom").click(function(){
            $("#custom").toggle(1000);
             $("#test").toggle(1000);
        });
    });

Index.phtml:

<?php echo $form; ?>

形式:

public function createElements(array $formData)
    {      
        $this->addElement(
            'note',
            'template',
            array(
                'order'         => 0,
                'value'         => $this->translate('Custom'),
                'decorators'    => array(
                    'ViewHelper',
                    array('HtmlTag', array('tag' => 'h3'))
                )
            )
        );
        if ( $this->filter_type == 'STATIC' ) {
                $this->addElement(
                    'multiselect',
                    'names',
                    array(
                        'order'         => 21,
                        'label' => $this->translate('Name'),
                        'required'      => true,
                        'value' => '',
                        'multiOptions' => array_unique( $this->name),
                        'description'   => $this->translate('Name'),
                        'autosubmit' => false
                    )
                 );
            } else {
                $text_type = (  $this->filter_type == 'MYSQL' )? 'textarea':'hidden';
                 $this->addElement(
                 $text_type,
                'format',
                array(
                    'order'         => 30,
                    'value'         => $this->query,
                    'label'         => $this->translate('Format'),
                    'description'   => $this->translate('Format'),
                    'required'      => true

                )
                );

                 if ( $text_type == 'hidden') {
                    $this->addElement(
                'note',
                'filter',
                array(
                    'order'         => 31,
                    'value'         => $this->filter,
                    'label'         => $this->translate('Format'),
                    'description'   => $this->translate('Format'),
                    'required'      => true    
                )
            );
                 }
    }

        $this->addElement(
            'select',
            'type',
            array(
                'order'         => 1,
                'label' => $this->translate('Type'),
                'required'      => true,
                'value' =>$this->filter_type,
                'multiOptions' => $this->getTypes(),
                'description'   => $this->translate('Type'),
                'autosubmit' => true
            )
        );
}

先谢谢。

1 个答案:

答案 0 :(得分:3)

你应该使用Toggle,这可以用很少的代码帮助你。

您可以参考以下示例来切换演示。

$("button").click(function(){
    $("p").toggle(1000);
});