2015-09-06 131 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