Is there a way to use javascript variable inside Laravel blade template?

11,117

Thank you every one that answered my question, but no answer can solve the problem of both the Old Value and the validation Error.

Eventually, I write the JS code and I also write a server side code which is almost the same as the JS. As Mina Abadir said, I should not add server side code to JS.

if the validation failed, I only rendered the Old value and the validation Error in the server side code , in this way ,the most difficult part is that I have to use Validator::make to add every error to a variable($items[$key]['oldvalue'] and $items[$key]['error']), which will be displayed in the server-side code .

the server side code like :

@if(validation_failed) {
     <input name="item[{{ $key }}]" type="text" value="{{ $items[$key]['oldvalue'] }}">
     @if (!empty($items[$key]['error']))<p class="formTable_error">{{ $items[$key]['error'] }}</p>@endif
}
Share:
11,117
chii
Author by

chii

Updated on June 04, 2022

Comments

  • chii
    chii almost 2 years

    I will automatically create the rows of a table in jQuery . by clicking addRow button , function addRow() will do it like below:

    function addRow(){
    
      var rowCount = $("table tr").length - 1; 
      var row = '<tr><td><input name=“item[‘+ (rowCount+1) + ']" type="text" value="{{ old(‘item') }}”> @if ($errors->has(‘item’)){{ $errors->first(‘item’) }}@endif<td></tr>' ;
    
     $("table").append(row);
    
    }
    

    I will call this method 5 times and it will create 5 input areas which name are item1. item2, item3, item4, item5.

    in server side ,I use Laravel 5.2 Form Request Validation to validate every input field.

    But if the validation failed , the old input and error will not set to the correct input field because

    I can’t put the javascript variable rowCount into "{{ old(‘item') }}” which is a blade template. and the same is {{ $errors->first(‘item’) }}.

    I tried to write like this

    'value="{{ old('giftValue[' . $rowCount .']') }}">'
    

    and this

    'value="{{ old('giftValue[' + $rowCount +’]’) }}">'
    

    but does’t work.

    does anyone have a good idea to solve this problem ?