麻烦保持单选按钮设置

时间:2014-03-13 00:51:02

标签: javascript php codeigniter codeigniter-2

我在设置RADIO BUTTON时遇到了一些问题。

通常没有CI,我做到了:

    <input  name="type" value="1" checked="checked"  type="radio" onChange="this.form.submit();"/>

    Offer

    <?php 
   if( !empty($_SESSION['type']) && $_SESSION['type'] == 2 )

       {

           echo "<input type=\"radio\" name=\"type\" value=\"2\"

           checked = \"checked\" onChange=\"this.form.submit();\" />";

           }else{

           echo "<input type=\"radio\" name=\"type\" value=\"2\" 

           onChange\"this.form.submit();\" 

           />";
   }     
    ?>
   Search

然后我使用条件:

    if(!empty($_SESSION['type']) && $_SESSION['type'] == 1)

    {

     dosomthing()

    }

我试了一下,我遇到了两个问题。

1-我正在使用Onchange方法刷新页面,但实际上它正在发送表单。 (当我不使用CI时没有发生这种情况)

2-当我选择搜索电台时,它不会停留在那里,它会回到第一个电台。

这就是我所做的。

      <?php echo form_radio('type', '1', TRUE, 'onChange="this.form.submit();"'); ?>

      Offer

      <?php

      if( $this->session->userdata('type') && $this->session->userdata('type') == 2 )

       {

        echo form_radio('type', '2', TRUE, 'onChange="this.form.submit();"');

       }else{

        echo form_radio('type', '2', FALSE, 'onChange="this.form.submit();"');

       }

       ?>

       Search

      <?php

      if(($this->session->userdata('type')) && $this->session->userdata('type') == 1) 

       {

       dosomething();

       }
      ?>

1 个答案:

答案 0 :(得分:0)

试试这个,您可能需要在控制器或模型中更改会话值,如下所示:

if($this->input->post("type") && $this->input->post("type")==2){
 $this->session->set_userdata('type', 2);
}
else{
 $this->session->set_userdata('type', 1);
}

内部视图:

<?php

      if( $this->session->userdata('type') && $this->session->userdata('type') == 2 )

       {

        echo form_radio('type', '2', TRUE, 'onchange="this.form.submit();"');

       }else{

        echo form_radio('type', '2', FALSE, 'onchange="this.form.submit();"');

       }

       ?>

       Search

      <?php

      if(($this->session->userdata('type')) && $this->session->userdata('type') == 1) 

       {

       dosomething();

       }
      ?>