Hướng dẫn how do i assign a javascript variable to laravel variable? - làm cách nào để gán một biến javascript cho biến laravel?

Có cách nào mà JavaScript có thể nhận được biến từ bộ điều khiển trong mẫu Laravel Blade không?

Ví dụ: Tôi có mã bên dưới:

$langs = Language::all();
return View::make('NAATIMockTest.Admin.Language.index',compact('langs'));

Tôi có thể nhận

public function create()
{
    $names = $this->initLang();
    Javascript::put([
        'langs' => $names
    ]);
    
    return View::make('NAATIMockTest.Admin.Language.create',compact('names'));
}
5 và chuyển nó cho JavaScript không? Tôi đã sử dụng Php-Vars-to-JS-Transformer. Nhưng khi tôi sử dụng
public function create()
{
    $names = $this->initLang();
    Javascript::put([
        'langs' => $names
    ]);
    
    return View::make('NAATIMockTest.Admin.Language.create',compact('names'));
}
6 cho hai chức năng trong bộ điều khiển. Nó không hoạt động. Bất kỳ trợ giúp?

Đây là chức năng tạo của tôi trong bộ điều khiển:

public function create()
{
    $names = $this->initLang();
    Javascript::put([
        'langs' => $names
    ]);
    
    return View::make('NAATIMockTest.Admin.Language.create',compact('names'));
}

Đây là quan điểm của tôi:

@extends('AdLayout')
@section('content')

    

Create language

{!! Form::open() !!}

{!! Form::label('Name','Language: ') !!}


{!! Form::submit('Create',['class'=>'btn btn-primary']) !!}  {!! Html::linkAction('NAATIMockTest\LanguageController@index', 'Back', null, array('class' => 'btn btn-primary')) !!}
{!! Form::close() !!}
@endsection

JavaScript.php của tôi trong thư mục cấu hình:

 'footer',
    'bind_js_vars_to_this_view' => 'NAATIMockTest.Admin.Language.create',
    'bind_js_vars_to_this_view' => 'NAATIMockTest.Admin.Language.edit',
    
    'js_namespace' => 'window',
];

Ý tưởng là: Tôi có một ngôn ngữ bảng trong MySQL. Tôi muốn hiển thị danh sách thả xuống với nhiều thuộc tính để chọn và tôi cũng muốn tìm kiếm với AngularJS. Đó là lý do tại sao tôi muốn chuyển biến từ bộ điều khiển sang JavaScript. Ngoài ra, tôi có chức năng bên trong LanguageControll có tên là initLang để kiểm tra xem có tồn tại ngôn ngữ nào bên trong cơ sở dữ liệu hay không, nó không được hiển thị bên trong danh sách thả xuống trong Tạo chế độ xem.

Chuyển đổi Php Vars thành JavaScript

Ảnh của Kobu Agency trên unplash

Trong Laravel, chúng tôi chuyển dữ liệu đến chế độ xem lưỡi bằng cách sử dụng trình trợ giúp

public function create()
{
    $names = $this->initLang();
    Javascript::put([
        'langs' => $names
    ]);
    
    return View::make('NAATIMockTest.Admin.Language.create',compact('names'));
}
7.

Chuyển dữ liệu cho lượt xem

Trong tuyến Ứng dụng, đối số thứ hai được sử dụng để truyền dữ liệu để xem.

Route::get('/', function () {
return view('welcome', ['name' => 'James']);
});

Trong bộ điều khiển, trình trợ giúp xem cũng được sử dụng để truyền dữ liệu.

Ký hiệu chấm chấm có thể được sử dụng để tham chiếu các chế độ xem lồng nhau. Quyền dưới đây, dữ liệu sẽ hiển thị trên

public function create()
{
    $names = $this->initLang();
    Javascript::put([
        'langs' => $names
    ]);
    
    return View::make('NAATIMockTest.Admin.Language.create',compact('names'));
}
8

public function show(Permission $permission)
{
return view('admin.permission.show', compact('permission'));
}

Chuyển một biến PHP cho JavaScript

Nhưng trong một số trường hợp, bạn muốn chuyển một số VAR phía máy chủ cho JavaScript. Ví dụ, yêu cầu một số giá trị cho phân tích. Chúng ta có thể chuyển các biến bằng cách sử dụng gói vars Php biến đổi sang gói JavaScript. Ngoài ra, chúng tôi có thể làm mà không cần sử dụng gói này.

  • 1. Sử dụng kết xuất JSON
  • 2. Sử dụng biến đổi Php Vars thành Gói JavaScript

1. Không có gói: Sử dụng kết xuất JSON

Trong kết xuất Laravel, JSON sẽ được sử dụng để khởi tạo biến JavaScript.

Thí dụ

Bây giờ thêm dữ liệu mảng trong tuyến ứng dụng. Mảng trang này chúng ta cần sử dụng làm JavaScript.

Route::get('/', function () {
return view('welcome', ['page_data' => [
'title' => 'Home',
'price' => 20
]]);
});

Thêm các js :: từ trong quan điểm chào mừng

public function create()
{
    $names = $this->initLang();
    Javascript::put([
        'langs' => $names
    ]);
    
    return View::make('NAATIMockTest.Admin.Language.create',compact('names'));
}
9

Mở trình duyệt và kiểm tra trang_data trong bảng điều khiển.

2. Sử dụng biến đổi Php Vars thành Gói JavaScript

1. Không có gói: Sử dụng kết xuất JSON

composer require laracasts/utilities

Trong kết xuất Laravel, JSON sẽ được sử dụng để khởi tạo biến JavaScript.

@extends('AdLayout')
@section('content')

    

Create language

{!! Form::open() !!}

{!! Form::label('Name','Language: ') !!}


{!! Form::submit('Create',['class'=>'btn btn-primary']) !!}  {!! Html::linkAction('NAATIMockTest\LanguageController@index', 'Back', null, array('class' => 'btn btn-primary')) !!}
{!! Form::close() !!}
@endsection
0

public function create()
{
    $names = $this->initLang();
    Javascript::put([
        'langs' => $names
    ]);
    
    return View::make('NAATIMockTest.Admin.Language.create',compact('names'));
}
0

Thí dụ

@extends('AdLayout')
@section('content')

    

Create language

{!! Form::open() !!}

{!! Form::label('Name','Language: ') !!}


{!! Form::submit('Create',['class'=>'btn btn-primary']) !!}  {!! Html::linkAction('NAATIMockTest\LanguageController@index', 'Back', null, array('class' => 'btn btn-primary')) !!}
{!! Form::close() !!}
@endsection
1

public function create()
{
    $names = $this->initLang();
    Javascript::put([
        'langs' => $names
    ]);
    
    return View::make('NAATIMockTest.Admin.Language.create',compact('names'));
}
1

Bây giờ thêm dữ liệu mảng trong tuyến ứng dụng. Mảng trang này chúng ta cần sử dụng làm JavaScript.

public function create()
{
    $names = $this->initLang();
    Javascript::put([
        'langs' => $names
    ]);
    
    return View::make('NAATIMockTest.Admin.Language.create',compact('names'));
}
2

Thêm các js :: từ trong quan điểm chào mừng

@extends('AdLayout')
@section('content')

    

Create language

{!! Form::open() !!}

{!! Form::label('Name','Language: ') !!}


{!! Form::submit('Create',['class'=>'btn btn-primary']) !!}  {!! Html::linkAction('NAATIMockTest\LanguageController@index', 'Back', null, array('class' => 'btn btn-primary')) !!}
{!! Form::close() !!}
@endsection
2

Mở trình duyệt và kiểm tra trang_data trong bảng điều khiển.

public function create()
{
    $names = $this->initLang();
    Javascript::put([
        'langs' => $names
    ]);
    
    return View::make('NAATIMockTest.Admin.Language.create',compact('names'));
}
3

public function create()
{
    $names = $this->initLang();
    Javascript::put([
        'langs' => $names
    ]);
    
    return View::make('NAATIMockTest.Admin.Language.create',compact('names'));
}
9

public function create()
{
    $names = $this->initLang();
    Javascript::put([
        'langs' => $names
    ]);
    
    return View::make('NAATIMockTest.Admin.Language.create',compact('names'));
}
4

Cài đặt gói thông qua trình soạn thảo

Nếu bạn biết bất kỳ phương pháp thay thế nào khác, hãy chia sẻ chúng trong bình luận.

Cảm ơn bạn đã đọc.

Chơ để biết thêm!

Theo dõi tôi tại Balajidharma.medium.com.balajidharma.medium.com.

Chúng ta có thể gán biến JavaScript cho biến PHP không?

JavaScript sẽ được giải thích trong trình duyệt của máy khách và bạn không thể gán nó cho biến PHP được giải thích trên máy chủ. Giải pháp khả thi: Bạn có thể gửi giá trị JavaScript thông qua AJAX hoặc thông qua Biểu mẫu.you can not assign it to PHP variable which is interpreted on SERVER . Feasible Solution : You can submit the Javascript value via ajax or through form submit.

Tôi đặt mã JavaScript ở đâu trong Laravel?

JavaScript được biên dịch của bạn thường sẽ được đặt trong thư mục công cộng/JS.Ứng dụng.Tệp JS sẽ tải tài nguyên/tài sản/js/bootstrap.Tệp JS bootstraps và cấu hình Vue, tài nguyên Vue, jQuery và tất cả các phụ thuộc JavaScript khác.public/js directory. The app. js file will load the resources/assets/js/bootstrap. js file which bootstraps and configures Vue, Vue Resource, jQuery, and all other JavaScript dependencies.

Làm thế nào sử dụng biến JavaScript trên cùng một trang trong PHP?

Bạn có thể dễ dàng nhận được giá trị biến JavaScript trên cùng một trang trong PHP.Hãy thử codel sau.var res = "thành công"; php echo "