我在每个li中都有一个列表,但我有一个输入字段,但是当我发送数据时无法获得这些输入的值
@foreach($options as $group => $option)
// another options here with name="dropdown" //
// And this data won't send
<div class="tt-swatches-container">
<div class="tt-wrapper">
<div class="tt-title-options">{{$group}}:</div>
<ul class="tt-list-inline tt-options-swatch options-large">
@foreach($option as $opt)
<li class="tt-list-inline-item">
<label for="{{$opt->id}}">
<input type="checkbox" name="{{$group}}" value="{{$opt->title}}" id="{{$opt->id}}" />
{{$opt->title}}
</label>
</li>
@endforeach
</ul>
</div>
</div>
@endforeach
array:3 [▼
"_token" => "kanCHxEv96MWih4TaXTKSjHYu8gDdWs1YLDCWiv0"
"dropdown" => "title 44"
"quantity" => "1"
//here should be another option named color!
]
其上方的该数据应包含
name="{{$group}}"
,并且 值(在这种情况下为name="{{$group}}" == colors
有什么主意吗?
我的表格
<form method="post" class="form-default" action="{{route('addingItem', $product->id)}}">
@csrf
@if(count($options)>0)
<!-- options -->
<div class="tt-swatches-container">
@foreach($options as $group => $option)
@if($group == 'color')
<div class="tt-wrapper">
<div class="tt-title-options">{{$group}}:</div>
<ul class="tt-list-inline tt-options-swatch options-large">
@foreach($option as $opt)
<li class="tt-list-inline-item">
<label style="background-color: {{$opt->color}}" class="options-color" for="{{$opt->id}}">
<input type="radio" name="{{$group}}" value="{{$opt->title}}" id="{{$opt->id}}" />
</label>
</li>
@endforeach
</ul>
</div>
@elseif($group == 'dropdown')
<div class="tt-swatches-container">
<div class="tt-wrapper">
<div class="tt-title-options">{{$group}}:</div>
<div class="form-group">
<select name="{{$group}}" class="form-control">
@foreach($option as $opt)
<option>{{$opt->title}}</option>
@endforeach
</select>
</div>
</div>
</div>
@else
<div class="tt-swatches-container">
<div class="tt-wrapper">
<div class="tt-title-options">{{$group}}:</div>
<ul class="tt-list-inline tt-options-swatch options-large">
@foreach($option as $opt)
<li class="tt-list-inline-item">
<label for="{{$opt->id}}">
<input type="checkbox" name="{{$group}}" value="{{$opt->title}}" id="{{$opt->id}}" />
{{$opt->title}}
</label>
</li>
@endforeach
</ul>
</div>
</div>
@endif
@endforeach
</div>
<!-- options -->
@endif
<div class="tt-wrapper">
<div class="tt-row-custom-01 tt-responsive-lg">
<div class="col-item">
<div class="tt-input-counter style-01">
<span class="minus-btn"></span>
<input type="text" name="quantity" value="1" size="5">
<span class="plus-btn"></span>
</div>
</div>
<div class="col-item">
<button type="submit" data-id="{{$product->id}}" class="btn btn-lg"><i class="icon-f-39"></i>ADD TO CART</button>
</div>
</div>
</div>
</form>
第$options
页的
Collection {#3133 ▼
#items: array:3 [▼
"color" => Collection {#3127 ▼
#items: array:2 [▶]
}
"dropdown" => Collection {#3128 ▼
#items: array:2 [▶]
}
"radio" => Collection {#3129 ▼
#items: array:3 [▶]
}
]
}
外部HTML
<form method="post" class="form-default" action="http://shopping.dev.com/addingItem/22">
<input type="hidden" name="_token" value="kanCHxEv96MWih4TaXTKSjHYu8gDdWs1YLDCWiv0">
<!-- options -->
<div class="tt-swatches-container">
<div class="tt-wrapper">
<div class="tt-title-options">color:</div>
<ul class="tt-list-inline tt-options-swatch options-large">
<li class="tt-list-inline-item">
<label style="background-color: #e74c3c" class="options-color" for="28">
<input type="radio" name="color" value="red" id="28">
</label>
</li>
<li class="tt-list-inline-item">
<label style="background-color: #2980b9" class="options-color" for="29">
<input type="radio" name="color" value="blue" id="29">
</label>
</li>
</ul>
</div>
<div class="tt-swatches-container">
<div class="tt-wrapper">
<div class="tt-title-options">dropdown:</div>
<div class="form-group">
<select name="dropdown" class="form-control">
<option>title 33</option>
<option>title 44</option>
</select>
</div>
</div>
</div>
<div class="tt-wrapper">
<div class="tt-title-options">radio:</div>
<ul class="tt-list-inline tt-options-swatch options-large">
<li class="tt-list-inline-item">
<label for="36">
<input type="checkbox" name="radio" value="hi" id="36">
hi
</label>
</li>
<li class="tt-list-inline-item">
<label for="37">
<input type="checkbox" name="radio" value="hii" id="37">
hii
</label>
</li>
<li class="tt-list-inline-item">
<label for="38">
<input type="checkbox" name="radio" value="bye" id="38">
bye
</label>
</li>
</ul>
</div>
</div>
</div>
<!-- options -->
<div class="tt-wrapper">
<div class="tt-row-custom-01 tt-responsive-lg">
<div class="col-item">
<div class="tt-input-counter style-01">
<span class="minus-btn"></span>
<input type="text" name="quantity" value="1" size="5">
<span class="plus-btn"></span>
</div>
</div>
<div class="col-item">
<button type="submit" data-id="22" class="btn btn-lg"><i class="icon-f-39"></i>ADD TO CART</button>
</div>
</div>
</div>
</form>
答案 0 :(得分:0)
执行color
时是否可以展开dd($options)
对象?
基于该li
的内容,它使用的是ff变量:
{{ $group }}
{{ $opt->id }} //a number
{{ $opt->title }} //a color title/name?
{{ $opt->color }} //a color title/name?
只是在这里尝试,但是$ opt中可能不存在title
或color
答案 1 :(得分:0)
您提供的所有内容似乎都是正确的。不过可能会有一些问题在起作用。
首先,在这里查看原始的输出代码:https://codepen.io/cjke/pen/vbxRwb?editors=1000
填写所有字段,然后单击“提交”,您将看到Codepen将这些值正确吐出。因此,您最终呈现的表单正在执行应做的所有工作(这是您的确切代码,我所做的唯一更改是删除了操作)。
所以,我的第一个猜测是,您没有提交数据。即:当您以用户身份提交时,实际上并没有填写这些字段,这将使您没有设置radio
和color
(相对于空白)。在这种情况下,您需要处理“默认”状态。
我的第二个猜测是,在表单提交之前您可能已经进行了一些验证,这可能使它搞砸了。但这几乎是不可能的。
我的第三个猜测(但不太可能)是您有一些特定于应用程序的中间件正在剥离提交数据。除非您团队中的其他人写过,否则不可能吗?
如果这三个都不是,则需要更新您的问题以包括控制器代码。