Laravel foreach выбрать только показать опции с одинаковым идентификатором - PullRequest
0 голосов
/ 24 октября 2019

Итак, проблема в том, что экстрапции foreach работают, но они показывают все поля eos_name, а не только те поля, которые имеют одинаковые eos_extra_id.

как я хочу, чтобы это работало:

я хочу, чтобы первый выбор показывал только eos_name поля с eos_extra_id из 30, а затем, когда появляется другой флажок, яхотите, чтобы в этом поле показывалось eos_name, где идентификатор на единицу выше.

извините, если я не объяснил это хорошо ... кто-нибудь знает, как это исправить? заранее спасибо!

html

<label>Opties</label>
<br>
@foreach($options as $option)   
    <div>
        <input type="checkbox"
            class="option"
            id="option_{{ $optie->exa_id }}"
            name="option_{{ $option->exa_id }}"
            value="{{ $option->exa_id }}"
            {{
                isset($cache)
                    ? (isset($cache['option_' . $option->exa_id]) ? 'checked' : '')
                    : (
                        old()
                            ? (old('option_' . $option->exa_id) ? 'checked' : '')
                            : ($registration
                                ? (
                                    in_array($registration->exa_id, $registration_options)
                                        ? 'checked'
                                        : ''
                                )
                                : '')
                        )
            }}>
            <input type="hidden" value="{{ $option->exa_price }}" class="option_price_{{ $option->exa_id }}">
            <label>{{ $option->exa_name }}</label>
            <label>  €{{ $option->exa_price }}</label>
    </div>
    <select name="extraoptions" class="form-control">
        @foreach($extraoptions as $extraoption)
            <option value="{{ $extraoption->eos_id }}">{{ $extraoption->eos_name }}</option>
        @endforeach
    </select>
@endforeach

RegistrationController

//options
$options_ids_array = array();
$options = Extra::all();
foreach($options as $option){
    $option->exa_id = "option_" . $option->exa_id;
    $input_option = $option->exa_id;
    if(!is_null($input_option)){
        $options_ids_array[] = $input_option;
    }
}

$registration->dev_option_id = implode(",", $options_ids_array);
$registration->save();

//extra options
$extraoptions_ids_array = array();
$extraoptions = ExtraOptie::all();
foreach($extraoptions as $extraoption){
    $extraoption->eos_id = "extraoption_" . $extraoption->eos_id;
    $input_extraoption = $extraoption->eos_id;
    if(!is_null($input_extraoption)){
        $extraoptions_ids_array[] = $input_option;
    }
}

$registration->dev_option_id = implode(",", $extraoptions_ids_array);
$registration->save();

1 Ответ

0 голосов
/ 25 октября 2019

Я не уверен, но попробуйте и дайте мне знать, что происходит

В контроллере

public function view()
{
$options = Extra::all();
$extraoptions = ExtraOptie::all();
return view('yourbladefrom',compact('extraoptions','options'))
}
public function store(Request $request)
{
$option = new Extra;
$options->name=$request->name;//your product name
$options->price=$request->price;//your product price
$options->save();
$extraoptions = new ExtraOptie;
$extraoptions->eos_id=$request->eos_id;
$extraoptions->save();
}

В поле зрения

@foreach($options as $option)
            <input type="checkbox" id="check" value="{{ $option->name }}">{{ $option->name}}</option>
@endforeach
<select name="eos_extra_id" class="form-control" id="select">
        @foreach($extraoptions as $extraoption)
            <option value="{{ $extraoption->eos_extra_id }}">{{ $extraoption->eos_name }}</option>
        @endforeach
    </select>

И используйте для этого jquery

<script>
$(function(){
  $("#check").on('change',function() {
    if (!$(this).is(':checked')) {
      $("#select").prop('disabled', 'disabled');
    } else {
      $("#select").prop('disabled', false);
    }
  });
});
</script>

попробуйте это и дайте мне знать, или если я что-то не так, дайте мне знать

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...