下拉列表显示正确的价值

时间:2015-09-06 17:58:41

标签: php drop-down-menu laravel-5

我的组合框中有两个值。汽车和自行车当用户选择其中一个时,它将以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>

1 个答案:

答案 0 :(得分: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>

编辑:如果你在laravel中使用刀片,那么你可以通过这样做来实现它:

{!! 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');
    }
});

注意:我没有测试过这个