首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Laravel Livewire,选择其他时添加输入字段(type=text)

Laravel Livewire,选择其他时添加输入字段(type=text)
EN

Stack Overflow用户
提问于 2021-09-15 05:06:31
回答 1查看 383关注 0票数 1

Laravel Livewire项目已创建具有条件字段的动态表单。在选择业务类型(线上/实体)后,选择业务类型时需要添加输入字段type=text。我在许多论坛上问过,人们给出了几个说明,但我发现这有点困难,因为我对PHP没有太多的经验。

代码语言:javascript
运行
AI代码解释
复制
namespace App\Http\Livewire;

use App\Models\Classes;
use App\Models\Section;
use Livewire\Component;

class Conditional extends Component
{
    public $parents = [];
    public $children = [];

    public function mount()
    {
        $this->parents = [
            ['id' => -1, 'title' => 'Select type'],
            ['id' => 1, 'title' => 'Physical Store'],
            ['id' => 2, 'title' => 'Online Shop'],
        ];
    }

    public function onSelectFirst($option)
    {
        switch($option) {
            case '-1': {
                $this->children = [];
                break;
            }

            case '1': {
                $this->children = [
                    ['id' => -1, 'title' => 'Please select'],
                    ['id' => 1, 'title' => 'Restaurant'],
                    ['id' => 2, 'title' => 'Fast Food'],
                    ['id' => 3, 'title' => 'Cafe'],
                    ['id' => 4, 'title' => 'Bar'],
                    ['id' => 5, 'title' => 'Night club'],
                    ['id' => 6, 'title' => 'Other'], // here
                ];

                break;
            }

            case '2': {
                $this->children = [
                    ['id' => -1, 'title' => 'Please select'],
                    ['id' => 7, 'title' => 'Clothes'],
                    ['id' => 8, 'title' => 'Food Delivery'],
                    ['id' => 9, 'title' => 'Other'], // here
                ];

                break;
            }
        }
    }

    public function render()
    {
        return view('livewire.conditional');
    }
}
代码语言:javascript
运行
AI代码解释
复制
  <x-jet-label for="business_kind" value="{{ ('Type')}}" />
    <select name="business_kind" id="business_kind" wire:click="onSelectFirst($event.target.value)" wire:change="onSelectFirst($event.target.value)">
      @foreach($parents as $option)
        <option value="{{ $option['id'] }}">{{ $option['title'] }}</option>
      @endforeach
    </select>
  <x-jet-label for="business_type" value="{{ ('Business type')}}"/>
    <select id="business_type" name="business_type" wire:loading.attr="disabled"'>
      @foreach($children as $option)
        <option value="{{ $option['id'] }}">{{ $option['title'] }}</option>
      @endforeach
  </select>
</div>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-15 07:21:07

听着,我重现了你的例子,而且效果很好。

代码语言:javascript
运行
AI代码解释
复制
    public $parents = [];
    public $selectedParent;
    
    public $children = [];
    public $selectedChildren;

    public $isVisible = false;

    public function mount()
    {
        $this->parents = [
            ['id' => -1, 'title' => 'Select type'],
            ['id' => 1, 'title' => 'Physical Store'],
            ['id' => 2, 'title' => 'Online Shop'],
        ];
    }
    public function render()
    {
        return view('livewire.select-composer')
            ->layout('layouts.app');
    }

    public function updatedSelectedChildren($option)
    {
        if (($this->selectedParent == 1 && $option == 6) || ($this->selectedParent == 2 && $option == 9)) {
            $this->isVisible = true;
        } else $this->isVisible = false;
    }

    public function updatedSelectedParent($option)
    {
        $this->selectedChildren = -1;
        $this->isVisible = false;
        switch($option) {
            case '-1': {
                $this->children = [];
                break;
            }

            case '1': {
                $this->children = [
                    ['id' => -1, 'title' => 'Please select'],
                    ['id' => 1, 'title' => 'Restaurant'],
                    ['id' => 2, 'title' => 'Fast Food'],
                    ['id' => 3, 'title' => 'Cafe'],
                    ['id' => 4, 'title' => 'Bar'],
                    ['id' => 5, 'title' => 'Night club'],
                    ['id' => 6, 'title' => 'Other'], // here
                ];

                break;
            }

            case '2': {
                $this->children = [
                    ['id' => -1, 'title' => 'Please select'],
                    ['id' => 7, 'title' => 'Clothes'],
                    ['id' => 8, 'title' => 'Food Delivery'],
                    ['id' => 9, 'title' => 'Other'], // here
                ];

                break;
            }
        }
    }

和刀片组件

代码语言:javascript
运行
AI代码解释
复制
<div class="d-flex">
        {{--    <x-jet-label for="business_kind" value="{{ ('Type')}}" />--}}
        <div wire:key="select-parent" wire:ignore.self>
            <select id="business_kind" wire:model="selectedParent">
                @foreach($parents as $option)
                    <option value="{{ $option['id'] }}">{{ $option['title'] }}</option>
                @endforeach
            </select>
        </div>
        {{--    <x-jet-label for="business_type" value="{{ ('Business type')}}"/>--}}
        <div wire:key="select-children">
            <select id="business_type" wire:loading.attr="disabled" wire:model="selectedChildren">
                @foreach($children as $option)
                    <option value="{{ $option['id'] }}">{{ $option['title'] }}</option>
                @endforeach
            </select>
        </div>
        @if($isVisible)
            <input type="text" class="form-control" value="Done!">
        @endif
    </div>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69193767

复制
相关文章
iOS_输入text处理 和 键盘Type
2.UIKeyboardTypeASCIICapable     // 显示可以输入ASCII字符的键盘。
mikimo
2022/07/20
1.1K0
iOS_输入text处理 和 键盘Type
AlpineJS作者:不上班,一年站着赚10w刀
这位老哥名叫「Caleb Porzio」,是一名全栈工程师。在离职前,他的年收入为9w刀。
公众号@魔术师卡颂
2021/08/26
1.6K0
AlpineJS作者:不上班,一年站着赚10w刀
MySQL之text字段
之前做的SQL审核工具不支持text类型的字段的,今天一个业务方问我为什么不支持text字段,大概给他讲了讲,后续发现可能还有些不完善的地方,这里总结一下text的用法,先来看看官方文档上对这个字段的解释:
AsiaYe
2019/11/06
12.1K0
InnoDB 行超长时怎么选择溢出字段?
InnoDB 索引页的大小默认为 16K,然而,varchar、text、blob 类型的单个字段内容长度就有可能超过 16K,这种情况下,整个索引页都存不下一个字段的内容了。
csch
2022/09/05
1K1
InnoDB 行超长时怎么选择溢出字段?
Laravel中如何添加新字段,如何指定在某个字段后而不是添加在最后
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/112554.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/08
1.2K0
Laravel中如何添加新字段,如何指定在某个字段后而不是添加在最后
Laravel Jetstream是什么以及如何入门?
Laravel Jetstream 与 Laravel 8 一起于2020年9月8日发布。
Lemon黄
2020/09/28
6.7K0
iOS 下 input=text 等输入框,触发时,灰色背景
这个属性只用于iOS (iPhone和iPad)。当你点击一个链接或者通过Javascript定义的可点击元素的时候,它就会出现一个半透明的灰色背景。要重设这个表现,你可以设置-webkit-tap-highlight-color为任何颜色。 想要禁用这个高亮,设置颜色的alpha值为0即可。
WindCoder
2018/09/20
1.5K0
explain语法---type字段案例
今天上班的时候遇到的一个慢日志问题,我在这里进行一个复盘,记录下,也帮助我自己对于explain语法的结果有个更深的了解。
AsiaYe
2019/11/06
4570
Laravel5.3之Callback Type
说明:本文主要学习PHP的回调类型callback type,通常在使用函数进行回调时,如使用call_user_func(callback, parameters)进行回调时,需要传入回调callback,实际上有几种callback type的,在Laravel中也大量使用回调,并根据场景不同传入不同的回调类型。
botkenni
2022/01/10
1.2K0
Laravel5.3之Callback Type
nop 添加字段
一.Libraries 1.core 层------------实体字段 2.data-Map----------映射到数据库 二.Admin  1.Models  --------admin界面模型      提示信息写法  2.Validators------界面模型验证  注:withMessage 不在所需要范围时提示 三.Web  1.Models  --------web界面模型     提示信息写法 2.Validators  ---------界面模型验证类
wfaceboss
2019/04/08
1.4K0
hive添加字段
修改字段位置时一定要加cascade,否则会报错 ALTER TABLE t_coupon_info ADD COLUMNS (ca2 STRING COMMENT ‘生成’ ) cascade ; ALTER TABLE t_coupon_info change ca2 ca2 STRING AFTER trans_num cascade ;
全栈程序员站长
2021/05/19
2.2K0
jquery当中each type text的用法
例 1.11(each&add&[type&text.html) <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head>     <title></title>     <script language="javascript" src="jquery.min.js"></script> </head> <body>     <input value="11" /> +     <input value="22" />     <input type="button" value="=" />     <label>0</label>     <script type="text/javascript">         $("input[type='button']").click(function(){             var sum = 0;             $("input[type='text']").each(function(){//每个都执行一遍function                 sum += parseInt($(this).val());             });             $('label').text(sum);         });     </script> </body> </html>
马克java社区
2021/02/02
7530
jquery当中each type text的用法
laravel 中字段格式处理
这里举一个简单的示例,在laravel 中,我们应当这样做: 在对应的Order 模型里定义
句小芒
2022/12/29
5320
点击加载更多

相似问题

如果选择其他输入字段,则livewire安装/保存输入字段

15

Laravel/Livewire嵌套输入字段在页面加载时消失

110

输入type="text“元素的选择

28

从javascript更新输入字段时,Laravel livewire模型不工作?

335

Jquery选择器输入[type=text]‘)

228
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档