2016-06-09 2 views
0

Я пытаюсь сделать простой jquery, с 1 флажок и 4 вариант в выпадающем меню. с этим HTML код:jquery показать и скрыть выпадающий список, если флажок установлен на основе значения базы данных

  <label>Busy</label>:</label> 
      <br><br> 
      <div class="checkbox checkbox-info checkbox-inline"> 
       <input type="checkbox" name="box" id="busy" <?=($restaurant_info["restaurant_busy"] != 0)? "checked":""?>/> 
       <label for="busy">Busy</label> 
      </div> 
      <br><br> 
       <div class="row"> 
        <div class="col-md-6"> 
         <select id="dropdownHolder" name="restaurant_busy"> 
          <option value="0" <?php if ($restaurant_info["restaurant_busy"] == '0') echo 'selected = "selected"'; ?>>No busy</option> 
          <option value="1" <?php if ($restaurant_info["restaurant_busy"] == '1') echo 'selected = "selected"'; ?>>30 minute</option> 
          <option value="2" <?php if ($restaurant_info["restaurant_busy"] == '2') echo 'selected = "selected"'; ?>>60 minute</option> 
          <option value="3" <?php if ($restaurant_info["restaurant_busy"] == '3') echo 'selected = "selected"'; ?>>90 minute</option> 
          <option value="4" <?php if ($restaurant_info["restaurant_busy"] == '4') echo 'selected = "selected"'; ?>>120 minute</option> 
         </select> 
        </div> 
       </div> 

и этот мой JQuery, что я пытался сделать, но я не могу получить его

$(function() { 
    var selected = $('#dropdownHolder option:selected'); 
    $('#dropdownHolder').hide(); 
    $('#busy').change(function() { 
     if ($('#busy').is(':checked')) { 
      $('#dropdownHolder ').show(); 
     }else if (selected.val() !== "0") { 
      $('#busy').prop('checked', true); 
      $('#dropdownHolder ').show(); 
     }else{ 
      $('#busy').prop('checked', false); 
      $('#dropdownHolder ').hide(); 
      } 
     }); 
    }); 

это моей Отправить форму

$("#edit_restaurant").submit(function(e){ 
    $("#edit_restaurant").attr('action', '/VENDOR/Vendor/change_restaurant/'); 
    e.preventDefault(); 
    this.submit(); 
}); 

я хочу, если , в моей базе данных значение restaurant_busy равно 0, флажок не будет установлен, а выпадающее меню не будет отображаться. Я действительно новый в jquery, пожалуйста, помогите мне

, что я пытаюсь сделать, если флажок не установлен, значение флажка 0 и отправить значение в базу данных, но я не знаю, как сделать это, поэтому я ставлю значение «0» в выпадающем меню, может ли помочь мне и в этом?

это мой контроллер для обновления данных

function change_restaurant(){ 

    if(!isset($_COOKIE["vendor_login"])){ redirect("/VENDOR",'refresh'); } 
    if(!$this->Token_m->m_check_token($this->input->cookie('vendor_login'),$this->input->cookie('vendor_token'))){ 
     setcookie('vendor_login', '', time() - 3600, '/'); 
     redirect('/VENDOR/',"refresh"); 
    } 
    if ($this->input->cookie('vendor_login') != null) { 
     $admin_name = $this->input->cookie('vendor_login'); 

     setcookie('vendor_login', $admin_name, time() + 28800, '/'); 
     $msg = $this->input->cookie('vendor_token'); 
     setcookie('vendor_token', $msg, time() + 28800, '/'); 
    } 

    if($vendorname = $_COOKIE["vendor_login"]) { 

     $check_login = $this->Vendor_m->m_get_user_by_vendor($vendorname); 
     $restaurant_id = $check_login["restaurant_id"]; 
     { 

      if ($_POST == NULL){ 
       redirect("/VENDOR/Vendor/vendor_setting","refresh"); 
      } 
      $data = array(
       "restaurant_busy" =>$this->input->post("restaurant_busy"), 
       "restaurant_active" =>$this->input->post("restaurant_active"), 
       "delivery_active" =>$this->input->post("delivery_active"), 
       "takeaway_active" =>$this->input->post("takeaway_active"), 
       "voucher_active" =>$this->input->post("voucher_active"), 

      ); 
      $this->Vendor_m->m_update_restaurant_info($data,$restaurant_id); 
     } 
    }redirect("/VENDOR/Vendor/vendor_setting","refresh"); 
} 

большого спасибо, извините, если мой запрос так много, и можно выбрать то, что и хочет пытаться ответить

ответ

1

Лемм знают, как это работает ya;)

$(function() { 
    var selected = $('#dropdownHolder option:selected'), // Seems to be unused 
     $busy = $('#busy'), // Always cache your queries 
     $dropdown = $('#dropdownHolder'); // Caching queries 

    $dropdown.hide(); // Hidden by default initially 

    $busy.change(function() { 
     if ($busy.prop('checked')) { 
      $dropdown.show().focus().click(); 
     } else{ 
      $busy.prop('checked', false); 
      $dropdown.blur().hide(); 
     } 
    }); 

    $busy.change(); // This sets initial state 
}); 
+0

спасибо, что это работает! –

+0

Вы можете мне помочь? если я не поставлю флажок, значение будет отправлено «0» в мою базу данных, я не знаю, как это сделать –

+0

Я имею в виду без заданного значения = 0 "в моем выпадающем списке –