简体   繁体   中英

Laravel checkbox value

I'm new in Laravel and I'm trying to get values from a checkbox. I'm trying to receive regeneration_id which is needed to create a report however, the value is always null .

View:

     @foreach ($regenerations as $regeneration)
                            @if ($regeneration -> invoice_id == NULL)

                            <tr>

                                <td>{{ $regeneration -> id }}</td>
                                <td>                  
                                  @if ($regeneration -> source == 1) Praca: {{ $regeneration -> source_id }}  
                                  @elseif ($regeneration -> source == 2) Sprzedaż: {{ $regeneration -> source_id }}
                                  @else Nieznane
                                  @endif </td>
                                <td>{{ $regeneration -> product_name }}</td>
                                <td>
                                  @if ($regeneration -> difficulty == 0) Nie ustalono
                                  @else {{ $regeneration -> difficulty }}
                                  @endif
                                </td>
                                <td>{{ $regeneration -> date_expected }}</td>

{{-- showing status of each regeneration --}}                              
                                <td>
                                  @if     ($regeneration -> status == 0 && $regeneration -> state == 2) <font color="red">Salon nie ocenione</font>
                                  @elseif ($regeneration -> status == 0 && $regeneration -> state == 3) Salon ocenione
                                  @elseif ($regeneration -> status == 1 && $regeneration -> state == 3) Wysłane MC ocenione
                                  @elseif ($regeneration -> status == 2 && $regeneration -> state == 3) Odebrane MC ocenione
                                  @elseif ($regeneration -> status == 3 && $regeneration -> state == 3) Wysłane SP ocenione
                                  @elseif ($regeneration -> status == 4 && $regeneration -> state == 3) Odebrane SP ocenione
                                  @elseif ($regeneration -> status == 4 && $regeneration -> state == 4) Odebrane SP niezregenerowane
                                  @elseif ($regeneration -> status == 4 && $regeneration -> state == 5) Odebrane SP zregenerowane
                                  @elseif ($regeneration -> status == 1 && $regeneration -> state == 4) Wysłane MC niezregenerowane
                                  @elseif ($regeneration -> status == 1 && $regeneration -> state == 5) Wysłane MC zregenerowane
                                  @elseif ($regeneration -> status == 2 && $regeneration -> state == 4) Odebrane MC niezregenerowane
                                  @elseif ($regeneration -> status == 2 && $regeneration -> state == 5) Odebrane MC zregenerowane
                                  @elseif ($regeneration -> status == 0 && $regeneration -> state == 6) Salon wstrzymane
                                  @endif 
                                </td>
                                <td>{{$regeneration -> wholesale_price}} zł</td>
{{-- checkbox to add regeneration to an invoice --}}





                             <td>     
                                <a href="{{ url ('actual',  $regeneration -> id ) }}">Szczegóły</a>
                             </td>
<form method="POST" action = "{{ action ('RegenerationsInvoicesController@generate')}}">
    {{csrf_field()}} 
                             <td>
                                  <div class="form-check">
                                  <input type="checkbox" name="regeneration[]" value = {{ $regeneration-> id }} ></input>
                                  </div>
                             </td> 
                             @endif 
                             @endforeach


                         </tr>

                      </table> 
               <button style="float: right;" type="submit" class= "btn btn-outline-success">Rozlicz</button>
</form>

Controller:

public function generate (Request $req)
{
   $regeneration_id = Input::get('regeneration');
   var_dump($regeneration_id);
}

What I'm trying is to get the input from checkbox but it always fails. Is that because my form starts outside of @foreach? Please help.

Route:

Route::post('/generateinvoice',RegenerationsInvoicesController@generate');

here try this

public function generate (Request $req)
{
         $regeneration_id = $req->input('regeneration');
         var_dump($regeneration_id);
}

edited change view

    @foreach ($regenerations as $regeneration)
                            @if ($regeneration -> invoice_id == NULL)

                            <tr>

                                <td>{{ $regeneration -> id }}</td>
                                <td>                  
                                  @if ($regeneration -> source == 1) Praca: {{ $regeneration -> source_id }}  
                                  @elseif ($regeneration -> source == 2) Sprzedaż: {{ $regeneration -> source_id }}
                                  @else Nieznane
                                  @endif </td>
                                <td>{{ $regeneration -> product_name }}</td>
                                <td>
                                  @if ($regeneration -> difficulty == 0) Nie ustalono
                                  @else {{ $regeneration -> difficulty }}
                                  @endif
                                </td>
                                <td>{{ $regeneration -> date_expected }}</td>

{{-- showing status of each regeneration --}}                              
                                <td>
                                  @if     ($regeneration -> status == 0 && $regeneration -> state == 2) <font color="red">Salon nie ocenione</font>
                                  @elseif ($regeneration -> status == 0 && $regeneration -> state == 3) Salon ocenione
                                  @elseif ($regeneration -> status == 1 && $regeneration -> state == 3) Wysłane MC ocenione
                                  @elseif ($regeneration -> status == 2 && $regeneration -> state == 3) Odebrane MC ocenione
                                  @elseif ($regeneration -> status == 3 && $regeneration -> state == 3) Wysłane SP ocenione
                                  @elseif ($regeneration -> status == 4 && $regeneration -> state == 3) Odebrane SP ocenione
                                  @elseif ($regeneration -> status == 4 && $regeneration -> state == 4) Odebrane SP niezregenerowane
                                  @elseif ($regeneration -> status == 4 && $regeneration -> state == 5) Odebrane SP zregenerowane
                                  @elseif ($regeneration -> status == 1 && $regeneration -> state == 4) Wysłane MC niezregenerowane
                                  @elseif ($regeneration -> status == 1 && $regeneration -> state == 5) Wysłane MC zregenerowane
                                  @elseif ($regeneration -> status == 2 && $regeneration -> state == 4) Odebrane MC niezregenerowane
                                  @elseif ($regeneration -> status == 2 && $regeneration -> state == 5) Odebrane MC zregenerowane
                                  @elseif ($regeneration -> status == 0 && $regeneration -> state == 6) Salon wstrzymane
                                  @endif 
                                </td>
                                <td>{{$regeneration -> wholesale_price}} zł</td>
{{-- checkbox to add regeneration to an invoice --}}





                             <td>     
                                <a href="{{ url ('actual',  $regeneration -> id ) }}">Szczegóły</a>
                             </td>
                             @endif 
                             @endforeach
<form method="POST" action = "{{ action ('RegenerationsInvoicesController@generate')}}">
    {{csrf_field()}} 
    @foreach ($regenerations as $regeneration)
                            @if ($regeneration -> invoice_id == NULL)
                             <td>
                                  <div class="form-check">
                                  <input type="checkbox" name="regeneration[]" value = {{ $regeneration-> id }} ></input>
                                  </div>
                             </td> 
                             @endif 
                             @endforeach


                         </tr>

                      </table> 
               <button style="float: right;" type="submit" class= "btn btn-outline-success">Rozlicz</button>
</form>

Thank you all for effort given with this challange. I finally found what is wrong. problem was only with view. I've placed my form in too far away, it should be in beginning of my table. The correct view should look like this, and it works perfectly.

     <form method="POST" action = "{{ action ('RegenerationsInvoicesController@generate')}}">
  {{csrf_field()}} 

                     <table style="width:100%">

                            <tr>
                                <th>ID </th>
                                <th>Źródło</th>
                                <th>Produkt</th>
                                <th>Stopień trudności</th>
                                <th>Spodziewana data</th>
                                <th>Status</th>
                                <th>Cena</th>
                                <th></th>
                                <th>Rozlicz</th>
                            </tr>



                            @foreach ($regenerations as $regeneration)
                            @if ($regeneration -> invoice_id == NULL)

                            <tr>

                                <td>{{ $regeneration -> id }}</td>
                                <td>                  
                                  @if ($regeneration -> source == 1) Praca: {{ $regeneration -> source_id }}  
                                  @elseif ($regeneration -> source == 2) Sprzedaż: {{ $regeneration -> source_id }}
                                  @else Nieznane
                                  @endif </td>
                                <td>{{ $regeneration -> product_name }}</td>
                                <td>
                                  @if ($regeneration -> difficulty == 0) Nie ustalono
                                  @else {{ $regeneration -> difficulty }}
                                  @endif
                                </td>
                                <td>{{ $regeneration -> date_expected }}</td>

{{-- Wyświetlanie statusu złożonego z state i status --}}                              
                                <td>
                                  @if     ($regeneration -> status == 0 && $regeneration -> state == 2) <font color="red">Salon nie ocenione</font>
                                  @elseif ($regeneration -> status == 0 && $regeneration -> state == 3) Salon ocenione
                                  @elseif ($regeneration -> status == 1 && $regeneration -> state == 3) Wysłane MC ocenione
                                  @elseif ($regeneration -> status == 2 && $regeneration -> state == 3) Odebrane MC ocenione
                                  @elseif ($regeneration -> status == 3 && $regeneration -> state == 3) Wysłane SP ocenione
                                  @elseif ($regeneration -> status == 4 && $regeneration -> state == 3) Odebrane SP ocenione
                                  @elseif ($regeneration -> status == 4 && $regeneration -> state == 4) Odebrane SP niezregenerowane
                                  @elseif ($regeneration -> status == 4 && $regeneration -> state == 5) Odebrane SP zregenerowane
                                  @elseif ($regeneration -> status == 1 && $regeneration -> state == 4) Wysłane MC niezregenerowane
                                  @elseif ($regeneration -> status == 1 && $regeneration -> state == 5) Wysłane MC zregenerowane
                                  @elseif ($regeneration -> status == 2 && $regeneration -> state == 4) Odebrane MC niezregenerowane
                                  @elseif ($regeneration -> status == 2 && $regeneration -> state == 5) Odebrane MC zregenerowane
                                  @elseif ($regeneration -> status == 0 && $regeneration -> state == 6) Salon wstrzymane
                                  @endif 
                                </td>
                                <td>{{$regeneration -> wholesale_price}} zł</td>
{{-- checkbox do dodania do rozliczenia --}}





                             <td>     
                                <a href="{{ url ('actual',  $regeneration -> id ) }}">Szczegóły</a>
                             </td>


                             <td>



                                  <div class="form-check">
                                  <input type="checkbox" name="regeneration[]" value = "{{ $regeneration -> id }}" ></input>
                                  </div>
                             </td> 

                             @endif 
                             @endforeach

                         </tr>
                      </table>   
                <button style="float: right;" type="submit" class= "btn btn-outline-success">Rozlicz</button>
</form>           

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM