2014-03-13 2 views
0

У меня возникли проблемы с установкой 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

Краткое примечание - всякий раз, когда у вас есть встроенный событие атрибут handler, например 'onclick' или' onchange', вам не нужно указывать префикс 'javascript:', поскольку он ожидает содержимого скрипта. 'onclick =" doFoo(); "' будет работать нормально. – scunliffe

+0

Sidenote: 'session_start();' загружен? –

+0

Да загружена session_start –

ответ

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(); 

     } 
     ?> 
Смежные вопросы