2017-11-02 3 views
2

この単純なチェックボックスがあります。送信後にチェックボックスはオンのままです。laravel

私の問題は、チェックボックスのいずれかを選択した場合、フォーム提出後にチェックされたままになります。

<label>                 
    <input type="checkbox" name="services_offered[]" value="water jet cutting"> Water Jet Cutting</label> 
<label>                 
    <input type="checkbox" name="services_offered[]" value="plasma cutting"> Plasma Cutting</label> 
<label>                 
    <input type="checkbox" name="services_offered[]" value="CNC router cutting"> CNC Router Cutting</label> 

私はそれが「laravel道」に変換したいが、私はどのように知らない

<?php 
function isChecked($value) 
{ 
    return (!empty($_REQUEST['services_offered']) && in_array($value,$_REQUEST['services_offered'])); 
} 

    <label><input type="checkbox" name="services_offered[]" value="water jet cutting" <?php if(isChecked('water jet cutting')) echo ' checked' ?>> Water Jet Cutting</label> 

    <label><input type="checkbox" name="services_offered[]" value="plasma cutting" <?php if(isChecked('plasma cutting')) echo ' checked' ?> > Plasma Cutting</label> 

    <label><input type="checkbox" name="services_offered[]" value="CNC router cutting" <?php if(isChecked('CNC router cutting')) echo ' checked' ?>> CNC Router Cutting</label> 

、私の前のコードが、運を使用しようとしました。

ご理解ください。

ありがとうございました。

答えて

2

私は私はあなたが正しい理解かどうかを知りませんが:

フォームは、チェックボックスの値を投稿できません。 だから私のようなJavaScriptの何かをそこ値は、各チェックボックスに関連付けられた隠し入力を作り、維持する:私は要求$要求から取得する隠し入力でのみプレイする

laravelコントローラで
$("#services_offered").change(function() { 
     if(this.checked) { 
      $('#services_offeredHidden').attr('value','1'); 
     } 
     else { 
      $('#services_offeredHidden').attr('value','0'); 
     } 
    }); 

。 あなたはこのあなたが使用して値にアクセスすることができ、ブレードで

return view('nameOfView')->with('checkbox',$checkboxValue); 

と同様に行い、コントローラからビューを返す:

{{$checkbox}} 

はそれが役に立てば幸い!

2

"Laravel way"をしたい場合は、ビュー内でHTMLフォームをマークアップするためにHTML package by Laravel Collectiveをチェックアウトすることをお勧めします。また、あなたのコントローラのメソッドが引数としてRequestを受け取っていることを確認してください。チェックアウトさえもLaravel's built-in Form Request Validationであってもかまいません。

現在のコードは非常に古くなっているので、現代的なやり方を学ぶのに時間がかかるかもしれませんが、それに固執すると報いを受けるでしょう。あなたのビューで

あなたはこのようなあなたのフォームが開きます:あなたのため、

public function store(Request $request) 
{ 
    $name = $request->input('name'); 

    // 
} 

しかし、一般的には:

{!! Form::open(['url' => 'foo/bar']) !!} 
// 
{!! Form::close() !!} 

フォームはこのようになります受信コントローラ上のあなたの方法質問が広すぎて、基本的にコードを書き直す必要はありませんが、Laravelを正しく学ぶためにはチュートリアルを始める必要があります。私はLaracastsのJeff Wayのビデオチュートリアルコースをお勧めします。

関連する問題