2015-09-06 136 views
1

我的組合框中有兩個值。當用戶選擇其中一個車輛和自行車時,它將以1或2存儲在數據庫中。但是,如何確保在用戶編輯它時顯示所選值。下拉菜單顯示正確的值

例如,我在數據庫中保存的自行車比用戶想要編輯它時必須顯示自行車而不是汽車!

我正在和laravel合作。

編輯

<div class="form-group"> 
         <label for="content" class="col-lg-2 control-label">Standaard route</label> 
         <div class="col-lg-10"> 
           @if($standaardroute->isEmpty()) 
           <label>U heeft nog geen standaardroutes. Maak deze <a href="/public/createroute">hier</a> aan.</label> 
           @else 
           <select class="form-control input-sm" name="standaardroute" id="standaardroute"> 
           @foreach($standaardroute as $route) 
            <option value="{!! $route->id !!}">{!! $route->van !!} - {!! $route->naar !!}</option> 
           @endforeach 
           </select>    
         </div> 
        </div> 
        @endif 

編輯

我有2個下拉菜單。當選擇一個下拉菜單時,另一個應從數據庫接收一個數字並顯示正確的值,例如自行車。當選擇第一個下拉菜單時,它發佈請求並接收返回值。當我收到一個文本框中的信息時,我會說:

$("#van").val(result.van); 

但是,如何使用下拉菜單執行此操作?

<script> 
$(document).ready(function() { 
    var xhr; 
    }); 

    $("#standaardroute").change(function(e) { 
    csrf = $("#token").attr('content') 
    option = $(this).val(); 

     $.ajax({ 
      url: '/public/receiveuserinformation', 
      type: 'POST', 
      data: { option_id: option }, 
      beforeSend: function(xhr){xhr.setRequestHeader('X-CSRF-TOKEN', csrf);}, 
      success: function(result) { 
       $("#van").val(result.van); 
       //here should be something for the dropdownmenu 
      } 
     }); 
    }); 
</script> 

回答

2

假設你在一個陣列已經兩個選項:$types = array('1' => 'car', '2' => 'bicycle');和你在產品表中保存它,你在$product可變

<select> 
    <?php foreach($types as $type_id => type_name): ?> 
     <option value="<?php echo $type_id; ?>" <?php if($type_id == $product->type) echo "selected"; ?>> 
      <?php echo $type_name; ?> 
     </option> 
    <?php endforeach; ?> 
</select> 

編輯所目前的產品資料:如果你在拉拉維爾使用刀片,那麼你可以通過這樣做簡單地實現它:

{!! Form::label('type', 'Type: ') !!} 
{!! Form::select('type', $types !!} 

EDIT2:試試這個:

<option value="{!! $route->id !!}" {{ ($standaardroute->route == $route->id) ? 'selected':'' }}>{!! $route->van !!} - {!! $route->naar !!}</option> 

注:更換$standaardroute->route您的實際變量


EDIT3:將這個你成功函數中:

$('#van option').each(function(){ 
    $(this).removeAttr('selected'); 
    if($(this).val() == result.van){ 
     $(this).attr('selected', 'selected'); 
    } 
}); 

注:我我沒有測試過這個

+0

好的感謝您的評論。請參閱我的編輯。我怎麼能做到這一點? – Jamie

+0

請參閱EDIT2並查看它是否有效。 – gskhanal

+0

奧克謝謝你的作品!但是如果我通過ajax請求接收到信息,請參閱我的編輯。 – Jamie