寻求PHP Laravel开发者解决Edit Blade中Select选项自动选中问题
解决Edit Blade中Select选项自动选中数据库值的问题
嘿,我懂你现在的困扰:想让编辑页面的下拉框自动选中数据库里存的分类,但当前代码没生效对吧?问题出在你把selected属性加在了<select>标签上,这不符合HTML的规则——这个属性应该放在对应的<option>标签里,而不是整个选择框上。
咱们直接改代码就行,给每个选项加上判断,当它的value和$header->category的值匹配时,就添上selected属性:
<label>Select Category</label> <select name="category" class="form-control"> <option value="logo-design" {{ $header->category == 'logo-design' ? 'selected' : '' }}>logo-design</option> <option value="website-development" {{ $header->category == 'website-development' ? 'selected' : '' }}>website-development</option> <option value="app-development" {{ $header->category == 'app-development' ? 'selected' : '' }}>app-development</option> <option value="search-engine-optimization" {{ $header->category == 'search-engine-optimization' ? 'selected' : '' }}>search-engine-optimization</option> <option value="digital-marketing" {{ $header->category == 'digital-marketing' ? 'selected' : '' }}>digital-marketing</option> <option value="cloud-hosting" {{ $header->category == 'cloud-hosting' ? 'selected' : '' }}>cloud-hosting</option> </select>
这里用了Laravel的三元运算符,每个选项都会对比自身value和数据库里的分类值,匹配的话就自动加上selected属性,页面加载时就会默认选中对应的选项了。
如果以后你的分类是从数据库动态获取的(比如有个专门的分类表),还可以用循环简化代码,不用手动写每个选项:
<label>Select Category</label> <select name="category" class="form-control"> @foreach($categories as $category) <option value="{{ $category->slug }}" {{ $header->category == $category->slug ? 'selected' : '' }}>{{ $category->name }}</option> @endforeach </select>
这样以后新增分类时,只要数据库里添加了,页面就会自动显示,不用再改blade文件啦。
内容的提问来源于stack exchange,提问作者yasir khan
相关产品推荐
相关产品推荐

