2016-06-09 116 views
0

调用函数如何调用函数阿贾克斯,laravel - 从控制器刀片模板

storeSessionData($名称,$值)@sessionController

PARTLIST。刀片

with ajax?

我很困惑,我应该使用什么路线来调用ajax函数,如果我有多个模板的多个URL。也许任何人会如此善良,给我写一个例子如何做到这一点?

SessionController

public function storeSessionData($name , $value){ 




     switch ($name) { 
     case 'cpu': 
      \Session::put($name,$value); 
      break; 
      case 'cpu_cooler': 
      \Session::put($name,$value); 
      break; 

      case 'case': 
      \Session::put($name,$value); 
      break; 

      case 'motherboard': 
      \Session::put($name,$value); 
      break; 

       case 'psu': 
      \Session::put($name,$value); 
      break;  

      case 'memory': 
      \Session::push($name,$value); 
      break; 

      case 'sound_card': 
      \Session::push($name,$value); 
      break; 

      case 'wireless_card': 
      \Session::push($name,$value); 
      break; 

      case 'wired_card': 
      \Session::push($name,$value); 
      break; 


      case 'storage': 
      \Session::push($name,$value); 
      break; 

       case 'optical_drive': 
      \Session::push($name,$value); 
      break; 

       case 'gpu': 
      \Session::push($name,$value); 
      break; 

       case 'case_fan': 
      \Session::push($name,$value); 
      break; 

     } 

      return redirect()->route('compatibilityCheck'); 

     } 

Partlist.Blade

   @foreach ($parts as $part=>$value) 
       @foreach ($value as $desc => $val) 


       <th><a href="?sort={{$desc}}&order=asc">{{trans('specifications.' .$desc)}}</a></th> 
       @endforeach 
       @break 
       @endforeach 
       </thead> 
       <tbody> 

       @foreach ($parts as $part => $value) 
       <tr> 
       @foreach ($value as $desc => $val) 


       @if($val == reset($value)) 
       <td class="part-link" ><a href="{{$slug}}{{$value->slug}}">{{$val}} </a></td> 
       @elseif ($val == end($value)) 

     <td><a class="button button-primary" href="" // Call ajax function on click {{$session_name}} {{$value->slug}} >Pievienot </a></td> 

       @else 

     <td data-title="{{trans('specifications.' .$desc)}}:">{{$val}}</td> 
       @endif 
@endforeach 
     </tr> 

@endforeach 

PARTLIST控制器

class partListController extends Controller 
{ 
    public function showAllCpu(Request $request){ 

// cpu query 
$parts = // part query 
$parts = $parts->paginate(30); 

     $data = [ 
    'title' => '', 
    'parts' => $parts, 
    'slug' => 'procesors-', 
    'bgImg' => 'cpubg', 
    'headTitle' => 'Intel un AMD Procesori', 
    'headParagraph' => 'Izvēlies jaunākos un izcilākos procesorus', 
    'session_name' => 'cpu', 


    ]; 

    if ($parts->currentPage() <= $parts->lastpage()) { 
     return view('partlist', $data); 
    } else{ 
     abort(404, 'Lapa nēeksistē'); 
    } 
    } 




    public function showAllMemory(Request $request){ 


// part query 
$parts = // part query 
$parts = $parts->paginate(30); 

     $data = [ 
    'title' => 'Izvēlies operatīvo atmiņu', 
    'parts' => $parts, 
    'slug' => 'operativa-atmina-', 
    'bgImg' => 'memorybg', 
    'headTitle' => 'Operatīvā atmiņa', 
    'headParagraph' => 'Paātrini sava datora ātrdarbību', 
    'session_name' => 'memory', 
    ]; 

    if ($parts->currentPage() <= $parts->lastpage()) { 
     return view('partlist', $data); 
    } else{ 
     abort(404, 'Lapa nēeksistē'); 
    } 
    } 

回答

1

下面是一个简单的例子:

routes.php文件

Route::post('sessions/{name}/{value}', ['as' => 'session.store', 'uses' => '[email protected]']); 

SessionController.php

<?php 
namespace App\Http\Controllers; 

use App\Http\Controllers\Controller; 

class SessionController extends Controller 
{ 
    public function storeSessionData($name, $value) { 
     // Do something with $name and $value 

     return ['name' => $name, 'value' => $value]; 
    } 
} 

partlist.blade.php

<html> 
    <head> 
    ... 
    <meta name="csrf-token" content="{{ csrf_token() }}" /> 
    ... 
    </head> 
    ... 
    <td><a class="button button-primary save-session" data-url="{{ route('session.store', ['name' => $session_name, 'value' => $value->slug]) }}">Pievienot</a></td> 
    ... 
</html> 

的Javascript

$('.save-session').on('click', function(){ 
    var token = $('meta[name="csrf-token"]').attr('content'), 
     $this = $(this), 
     url = $this.data('url'); 

    $.post(url, { _token: token }).done(function(msg) { 
     alert(msg); 
    }); 
}); 
+0

我吓坏爱你<333333个非常感谢 –